1、值类型(基本类型)
number(数字) NaN 不等于任何值,包括自身
string(字符串)
boolean(布尔)
undefined
特点:每个变量都能存储各自的值,不会相互影响
2、引用类型(对象类型)
Array(数组)
Function(函数)
Object(对象)
特点:通过指针指向对象,会相互影响,共用内存空间,节省内存空间
3、null 特殊的类型,可以理解为空的对象指针
typeof
可判断基本类型的数据类型,遇到引用类型时,只能判断Function数据类型,比较特殊的是判断null时显示Object类型。
instanceof
利用原型继承机制判断引用类型的数据类型
var arr = [1, 2, 3]; arr instanceof Array; //true 判断对象 arr 的属性是否出现在 Array 的原型链上
类型转换
1、字符串拼接
把一个数字类型转换成字符时,可以+''(加上一个空字符串)。 var n = 3 + ''; // '3'
把一个字符串类型的数字转换成数字类型时,可以-0(减零); var n = '3' - 0; // 3
2、==运算符、if语句、逻辑运算
null、undefined、零、NaN、空字符串转化为false,其他的都是true
在if语句中判断一个变量会被当作true还是false,可直接在变量前加!!(双非)。 if(!!n){...}
何时使用==,何时使用===
1、当需要判断一个对象属性是否存在时
if(obj.a == null){ //这里相当于obj.a === null || obj.a === undefined 的简写形式 //这也是jQuery 源码中的推荐写法 }
2、在一个函数里面判断一个参数时候存在时
function(a,b){ if(a == null){...} }