renovations
This commit is contained in:
parent
c7d4c7e3ff
commit
e1948130f6
170 changed files with 1496 additions and 1161 deletions
|
@ -0,0 +1,10 @@
|
|||
# Первый alert(foo)
|
||||
|
||||
Возвращает строковое представление объекта, используя `toString`, т.е. `"foo"`.
|
||||
|
||||
# Второй alert(foo + 1)
|
||||
Оператор `'+'` преобразует объект к примитиву, используя `valueOf`, так что результат: `3`.
|
||||
|
||||
# Третий alert(foo + '3')
|
||||
|
||||
То же самое, что и предыдущий случай, объект превращается в примитив `2`. Затем происходит сложение `2 + '3'`. Оператор `'+'` при сложении чего-либо со строкой приводит и второй операнд к строке, а затем применяет конкатенацию, так что результат -- строка `"23"`.
|
|
@ -0,0 +1,24 @@
|
|||
# Преобразование
|
||||
|
||||
[importance 5]
|
||||
|
||||
Объявлен объект с `toString` и `valueOf`.
|
||||
|
||||
Какими будут результаты `alert`?
|
||||
|
||||
```js
|
||||
var foo = {
|
||||
toString: function () {
|
||||
return 'foo';
|
||||
},
|
||||
valueOf: function () {
|
||||
return 2;
|
||||
}
|
||||
};
|
||||
|
||||
alert(foo);
|
||||
alert(foo + 1);
|
||||
alert(foo + "3");
|
||||
```
|
||||
|
||||
Подумайте, прежде чем ответить.
|
Loading…
Add table
Add a link
Reference in a new issue