1.任何非空的东西都可以加自定义属性,包括数组
null空的对象不能添加自定义属性
var a=null;  //a的数据类型是object
var a;  //a的数据类型是undefined

2.NaN 不是个 数字的数据类型
var a= Number(‘abc’);
alert(typeof a);   //number
数字一定是数据类型
数据类型不一定是数字
NaN是false
NaN===NaN  //结果是false,NaN和自己不相等
isNaN();  //  ==>通过Number()检测
isNaN(‘250’);  //false
isNaN(‘abc’);  //true
typeof(a)===’number’;  //判断是不是数字类型,有可能是NaN
!isNaN();  //相当于Number()检测是不是NaN
数字类型包括数字、NaN、true和false
4.检测是不是数字的方法
先检测是不是数字类型,过滤掉纯数字的字符串
方法1
typeof(a)===’number’;
再过滤掉NaN

!isNaN();

方法2

typeof(a)===’number’ && a===a;  //NaN 不等于NaN

5.隐式类型转换

num++;当num为字符串类型时会转换成数字

7.真假问题

真:非0的数字、非空字符串、函数、能找到的元素、[]、{}、true

假:0、NaN、空字符串‘’、不能找到的元素、null、未定义undefined、false