typeof null // "object" - официально признанная ошибка в языке Примитивные типы данных: number - число целое или дробное, сюда же относятся; NaN - ошибка вычислений, например 0/0 или "string" - 1, или undefined + 1; Infinity - результат деления на 0; Ещё до кучи 1 + "2" + 3 // "123" но 1 + 2 + "3" // "33" - вначале сложили два числа 1 и 2, потом к ним прибавилась строка
+0xff // 255 - унарный плюс переводит шестнадцатеричное число в число в десятичной системе
сравнение приводит будевы данные к числу поэтому правда больше чем ложь true > false // true, 1 > 0
если от правды отнять ложь, останется единица true - false // 1, 1 - 0 = 1
null == undefined // true Это прописано в спецификации - при сравнении null и undefined преобразования типов нет и эти значения равны друг другу и не равны никакому другому. кроме самих себя
(7).toString(); // "7" (7).toString(2); // "111"
.toString не только приводит к строке, но и преобразует системы счисления
Ну и ещё много всего интересного и забавного. Вывод. JavaScript язык, с которым не скучно.
Примитивные типы данных:
number - число целое или дробное, сюда же относятся;
NaN - ошибка вычислений, например 0/0 или "string" - 1, или undefined + 1;
Infinity - результат деления на 0;
Ещё до кучи
1 + "2" + 3 // "123"
но
1 + 2 + "3" // "33" - вначале сложили два числа 1 и 2, потом к ним прибавилась строка
+0xff // 255 - унарный плюс переводит шестнадцатеричное число в число в десятичной системе
сравнение приводит будевы данные к числу
поэтому правда больше чем ложь
true > false // true, 1 > 0
если от правды отнять ложь, останется единица
true - false // 1, 1 - 0 = 1
null == undefined // true
Это прописано в спецификации - при сравнении null и undefined преобразования типов нет и эти значения равны друг другу и не равны никакому другому. кроме самих себя
(7).toString(); // "7"
(7).toString(2); // "111"
.toString не только приводит к строке, но и преобразует системы счисления
Ну и ещё много всего интересного и забавного.
Вывод. JavaScript язык, с которым не скучно.