js中有5种基本的数据类型(简单数据类型):Undefined、Null、Boolean、Number 和 String。还有一种复杂数据类型:Object。object本质上是由一组无序的名值对构成。
1 typeof操作符
一般我们为了检测5种不同的数据类型,常用typeof操作符。(复杂数据类型用instance of检测)
var msg='string';
console.log(typeof message) // string
注意:null 和 object 的返回结果都是object 因为null 是一个空对象的指针。
2:Undefined类型
undefined类型只有一个值即 undefined,在用var申明变量时未对其进行初始化,这个变量会保存特殊的值undefined。
var msg;
console.log(msg); // undefined
console.log(age); // age is not defined
console.log(typeof msg);// undefined
console.log(typeof age);// undefined
可以看出未申明的变量typeof也是undefined
3:Null类型
Null类型只有一个值即null。是一个空对象的指针或引用,所以typeof 会返回 object
var msg=null;
console.log(typeof msg);// object
4:Boolean类型
只有两个字面量:true false
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符 | ' '(空字符串) |
Number | 任何非零数值 | 0和NaN |
Object | 任何对象 | null |
Undefined | n/a | undefined |
熟悉以上规则对控制流语句自动执行相应的Boolean转换非常重要。、
var msg='hellow world';
if(msg){
console.log('value is true'); // value is true
}
5:Number类型
转换为数值的三种方式:
Number():可以转换任意类型 var msg=Number('hellow world') // NaN
parseInt():专门用来把字符串转换成数字 var num1=parseInt('2.22'); //2 不能转换小数点后面的
parseFloat():专门用来把字符串转换成数字 var num1=parseInt('2.22') //2.22 可以转换小数点后面的
a:NaN 非数值 NaN不等于任何数 包括NaN本身