JS区分大小写
标识符,指变量、函数、属性的名字
关键字,JS中具有特殊用途,不可用作标识符
保留字,现在虽无特殊用途,将来可能有,也不可用作标识符
变量,JS是弱类型语言,变量是松散类型的,声明变量时不会标记类型,初始化的过程只是给变量赋一个值
ECMAScript5中有5种简单数据类型,1种引用数据类型
typeof操作符可返回变量数据类型,但不准确
var str1=10; var str2='10'; var str3=true; var str4; var str5={}; var str6=Array([1,2]); var str7=function(){ }; var str8=null; console.log(typeof str1);//number console.log(typeof str2);//string console.log(typeof str3);//boolean console.log(typeof str4);//undefined console.log(typeof str5);//object console.log(typeof str6);//object console.log(typeof str7);//function console.log(typeof str8);//object
数据类型
1、undefined类型
只有一个值,已声明未初始化
2、null类型
第二个只有一个值的数据类型,逻辑角度看,表示空对象指针,所以typeof会返回object,实际上undefined派生自null,所以ECMA-262规定
console.log(null==undefined)//true
3、boolean类型
JS种有会被转换为false的只有6个值
null, undefined, +/-0, NaN, false, ' '空字符串
4、number类型
(1)浮点数值
JS中,0.1+0.2!=0.3,原因在于计算机中采用二进制保存数据,0.1,0.2在转成二进制数时是无限循环的,所以只能取一个无限接近于0.3的近似值0.30000000000000004
,对JS来说,这个值还不等于0.3。
(2)NaN
NaN即非数值,表示本来要返回数值的地方未返回数值的情况(这样就不会抛出错误了,后面代码可继续执行),比如,任何数值除以非数值会返回NaN
NaN不等于NaN,任何涉及NaN的操作都会返回NaN
isNaN()函数可帮我们确定参数是否“不是数值”,不是数值的参数会直接转换为数值
console.log(isNaN(NaN));//true console.log(isNaN(10));//false,10是一个数值 console.log(isNaN("10"));//false,可以转换为数值10 console.log(isNaN("blue"));//不能转换为数值 console.log(isNaN(true));//false,可被转换为数值1
(3)数值转换
有三个函数可以把非数值转换为数值,Number(), ParseInt(), ParseFloat()
5、string类型
要把一个值转换为字符串有两种方法
(1)toString()方法,几乎每个值都有这个方法,null和undefined没有
(2)String()方法,全部数值类型都有这个方法,null返回“null”,undefined返回"undefined"
6、object类型
操作符