基本数据类型
- 数字Number
- 字符串String
- 布尔值Boolean : "",undefined,0,NaN,false, 这些值都是false。同时!的优先级最高,在没有括号的情况下:! > && > ||
- 未定义Undefined : 与数字运算结果为NaN, 与字符串运算结果为字符串拼接
- 空Null
- 任何不属于以上五种基本数据类型的值都被称为对象
还有一个特殊的值:Infinity. 它代表超出了Javascript处理范围的数值。例如JS的最大正数:1.7976931348623157e+308,最小数5e-324
NaN : 数字类型,但它表示“不是数组” (如果我们在运算使用了不恰当的操作数,导致运算失败,该运算就会返回NaN)(NaN与任何值运算都会返回NaN)(NaN不等于任何值,包括它自己)
typeof 操作符
可能的返回结果:
"number" , "string" , "boolean" , "undefined" , "object" , "function"
number实验:
typeof 1 ; // "number"
typeof 1.1; //"number"
typeof 0377; // 八进制 "number"
typeof 2e+3; // "number"
typeof Infinity; // "number"
typeof 5e-325; // "number"
Infinity - Infinity; // NaN
typeof NaN; // "number"
typeof 10/0; //NaN
1 + NaN ; // NaN
string实验:
typeof "1"; // "string"
typeof ""; // "string"
var a = 3 * "2"; // 6. "2" * 3 => 6
typeof a; // "number"
typeof 1+""; // "string"
typeof "101a" * 1; //NaN
boolean
typeof false; //"boolean"
typeof true; // "boolean"
typeof !1; // "boolean"
null 和undefined
1 * undefined; // NaN
1 * null; // 0
!!undefined; // false
!!null; // false
"value:" + null; // "value:null"
"value:" + undefined; // "value:undefined"