JavaScript基础学习--06js数据类型
一、ECMAScript:标准、核心,规定js中的语法、数据类型 (eg. HTML标签类型:block、inline、inline-block、table……)
1、js数据类型
1.1 number
1.2 string
1.2.1 str.charAt(index)
1.3 boolean
1.4 function
1.5 object (除了null,每个对象都可以obj.XXX添加属性)
1.5.1 array 也是object类型
1.5.2 json 也是object类型
1.5.3 null 也是object类型
1.6 undefined
2、数据类型判断:typeof (eg. typeof i)
3、数据类型之间的相互转换 (数据类型转换失败,无论是否是数字,都是NaN)
3.1. 显式类型转换(强制类型转换)Number()、parseInt()、parseFloat()
3.1.1 Number(); 方法,类似于alert() 方法,可以直接用的。
3.1.1.1 Number(); 可以将除了function、json、undefined、复杂array和复杂object类型的值转换成数字,成功是数字(包括null、[]、true、false、),失败是NaN
3.1.1.2 Number('123px'); //NaN Number('123') //123
3.1.2 parseInt(); 只能提取string类型的值,从左到右转换,遇到数字开始,遇到非数字截止。注意:+-符号是数字的一部分会被提取,不认小数
3.1.2.1 parseInt('12px', 10); //第二个参数是表示转换进制,10十进制,8八进制,16十六进制。默认十进制
3.1.3 parseFloat(); 转成浮点数,认识小数,并只认一个小数点
3.1.3.1 验证数字是整数还是小数
if(parseInt(num) == parseFloat(num)){......}else{......}
3.2 隐式类型转换
3.2.1 - * / % ++ -- 隐式转化成数字再进行操作
3.2.2 + 隐式转化成字符串再操作
3.2.3 > < 隐式转化成数字或者字符串 eg. if('10' > 9)//true if('10' > '9')//false
3.2.4 !取反
3.2.5 == 隐式转换之后,再进行比较。注意,===先判断类型,再判断值,如果类型不一样,不进行转换,直接false
3、NaN ( not a number ) typeof(Number('aaa')) //number 表示不是 一个数字 的数字类型
3.1 出现NaN表示进行了非法运算
3.2 NaN是false
3.3 NaN和自己不想等(if(NaN === NaN)//false)
3.4 是数字类型,但不是数字
3.5 isNaN() 是不是不是一个数字,即不是数字 可以判断是否是数字
3.5.1 其不喜欢数字,如果是数字,就是false。否则就是true eg. if( isNaN(5) ) //false
3.5.2 和Number是好盆友,内部验证的值都是经过Number转换之后的--》if( isNaN( '22' ) ) `//false --》isNaN() 不讨厌数字类型,讨厌数字。
3.5.3 判断是不是数字,过滤掉非数字 但是相对于类似‘22’也会成为数字--》过滤纯数字不完善
4、读 | 取HTML中的内容,均是字符串
原创博客,欢迎讨论,转载请注明出处、链接