Пропустить теорию и перейти прямо к задачам
Ссылка на учебник: http://learn.javascript.ru
Сразу расскажу про несколько особенностей яваскрипта, о которых может быть не написано (или мало написано) в учебниках, но которые стоит понимать:
Пропустить теорию и перейти прямо к задачам
Ссылка на учебник: http://learn.javascript.ru
Сразу расскажу про несколько особенностей яваскрипта, о которых может быть не написано (или мало написано) в учебниках, но которые стоит понимать:
| import getLastResolvedPromise from './getLastResolvedPromise' | |
| const promise1 = Promise.resolve(3); | |
| const promise2 = new Promise(function(resolve, reject) { | |
| setTimeout(resolve, 200, 'foo'); | |
| }); | |
| const promise3 = new Promise(function(resolve, reject) { | |
| setTimeout(resolve, 100, 'bar'); | |
| }); |
| console.log(undeclaredVariable === undefined); // ReferenceError | |
| console.log(typeof undeclaredVariable === 'undefined'); // true |
| // Использование typeof для идентификатора, | |
| // объявленного с блочной областью видимости, | |
| // создаст ошибку `ReferenceError` | |
| console.log(typeof tdzVariable === 'undefined'); // ReferenceError | |
| const tdzVariable = 'I am initialized.'; |
| console.log(typeof ""); // "string" | |
| console.log(typeof "hello"); // "string" | |
| console.log(typeof String("hello")); // "string" | |
| console.log(typeof new String("hello")); // "object" | |
| console.log(typeof 0); // "number" | |
| console.log(typeof -0); // "number" | |
| console.log(typeof 0xff); // "number" | |
| console.log(typeof -3.142); // "number" | |
| console.log(typeof Infinity); // "number" |
| значение | typeof |
|---|---|
undefined |
"undefined" |
null |
"object" |
true or false |
"boolean" |
all numbers or NaN |
"number" |
| all strings | "string" |
| all symbols | "symbol" |
| all functions | "function" |
| all arrays | "object" |
| function isNull(value) { | |
| return value === null; | |
| } |
| console.log(undefined == null); // true | |
| console.log(undefined === null); // false |
| console.log(isNaN(NaN)); // true | |
| console.log(isNaN(null)); // false | |
| console.log(isNaN(undefined)); // true | |
| console.log(isNaN(Infinity)); // false | |
| console.log(Number.isNaN(NaN)); // true | |
| console.log(Number.isNaN(null)); // false | |
| console.log(Number.isNaN(undefined)); // false | |
| console.log(Number.isNaN(Infinity)); // false |
| var x = NaN; | |
| console.log(x == NaN); // false | |
| console.log(x === NaN); // false |