This commit is contained in:
Ilya Kantor 2015-06-03 22:55:37 +03:00
parent f5f4acdf11
commit b6922e4933
4 changed files with 19 additions and 9 deletions

View file

@ -1,14 +1,18 @@
```js ```js
//+ no-beautify
"" + 1 + 0 = "10" // (1) "" + 1 + 0 = "10" // (1)
"" - 1 + 0 = -1 // (2) "" - 1 + 0 = -1 // (2)
true + false = 1 true + false = 1
6 / "3" = 2 "2" * "3" = 6 6 / "3" = 2
"2" * "3" = 6
4 + 5 + "px" = "9px" 4 + 5 + "px" = "9px"
"$" + 4 + 5 = "$45" "$" + 4 + 5 = "$45"
"4" - 2 = 2 "4px" - 2 = NaN "4" - 2 = 2
7 / 0 = Infinity " -9\n" + 5 = " -9\n5" "4px" - 2 = NaN
7 / 0 = Infinity
" -9\n" + 5 = " -9\n5"
" -9\n" - 5 = -14 " -9\n" - 5 = -14
5 && 2 = 2 5 && 2 = 2
2 && 5 = 5 2 && 5 = 5

View file

@ -5,13 +5,19 @@
Подумайте, какой результат будет у выражений ниже. Тут не только преобразования типов. Когда закончите -- сверьтесь с решением. Подумайте, какой результат будет у выражений ниже. Тут не только преобразования типов. Когда закончите -- сверьтесь с решением.
```js ```js
"" + 1 + 0 "" - 1 + 0 //+ no-beautify
"" + 1 + 0
"" - 1 + 0
true + false true + false
6 / "3" 6 / "3"
"2" * "3" "2" * "3"
4 + 5 + "px" 4 + 5 + "px"
"$" + 4 + 5 "4" - 2 "4px" - 2 "$" + 4 + 5
7 / 0 " -9\n" + 5 " -9\n" - 5 "4" - 2
"4px" - 2
7 / 0
" -9\n" + 5
" -9\n" - 5
5 && 2 5 && 2
2 && 5 2 && 5
5 || 0 5 || 0

View file

@ -285,7 +285,7 @@ var a = 5
[/smart] [/smart]
## Экспортирование через return ## Экспорт через return
Можно оформить модуль и чуть по-другому, например передать значение через `return`: Можно оформить модуль и чуть по-другому, например передать значение через `return`:

View file

@ -192,7 +192,7 @@ setTimeout(bind(user.sayHi, user), 1000);
Теперь всё в порядке! Теперь всё в порядке!
Вызов `bind(user.sayHi, user)` возвращает такую функцию-обёртку, которая привязывает вызовет `user.sayHi` к контексту `user`. Она будет вызвана через 1000мс. Вызов `bind(user.sayHi, user)` возвращает такую функцию-обёртку, которая привязывает `user.sayHi` к контексту `user`. Она будет вызвана через 1000мс.
Полученную обёртку можно вызвать и с аргументами -- они пойдут в `user.sayHi` без изменений, фиксирован лишь контекст. Полученную обёртку можно вызвать и с аргументами -- они пойдут в `user.sayHi` без изменений, фиксирован лишь контекст.
@ -281,7 +281,7 @@ setTimeout(user.sayHi.bind(user), 1000); // аналог через встрое
Далее мы будем использовать именно встроенный метод `bind`. Далее мы будем использовать именно встроенный метод `bind`.
[warn header="bind не похож call/apply"] [warn header="bind не похож на call/apply"]
Методы `bind` и `call/apply` близки по синтаксису, но есть важнейшее отличие. Методы `bind` и `call/apply` близки по синтаксису, но есть важнейшее отличие.
Методы `call/apply` вызывают функцию с заданным контекстом и аргументами. Методы `call/apply` вызывают функцию с заданным контекстом и аргументами.