Open Mopecat opened 4 years ago
js里有五种基本数据类型number string boolean undefined null, 一种复杂数据类型:object
number string boolean undefined null
object
ES6新增:Symbol
判断数据类型的方式可以使用:typeof, 需要注意typeof判断基础数据类型好使,除了null之外,typeof null == 'object'
typeof
typeof null == 'object'
显示的转换为数字有三种方法:Number()、parseInt()、parseFloat()
2~32
parseInt()
有两种方法:toString() 和 String()
xxx
undefined null -0 +0 NaN ''(空字符串): 这六项转换为都为false,其他都是true
Boolean(new Boolean(false)) == true
Boolean([]) Boolean({}) 也是 true
Number运算按数学运算进行,需要注意的是在进行小数运算时可能会不准确。结果一定为Number类型。 Number判断按照数学判断进行 结果为Boolean类型的true或false。 String运算两边转化为数字进行运算,普通字符串转化为Number类型的NaN进行运算,数字型字符串转化为数字例如:"123"转化为Number类型123.所有的东西和NaN进行算术运算都是NaN。还有最特殊的一点就是+,字符串进行加法运算时两边不会转化为数字,直接进行字符串拼接。结果为Number类型或字符串。 String比较的时候比较的是字符的Unicode码,不会转化数字进行比较 结果为Boolean类型的true或fals; Boolean运算的时候转化为数字,true转化为1,false转化为0,0/0,0%0 1%0结果为NaN,1/0结果为Infinity; Boolean比较的时候转化为数字,true转化为1,false转化为0,==并不会转化为数字。 undefined 运算的时候转化为数字NaN 所以所有结果均为NaN。 undefined 比较的时候不需要转化。undefined >=undefined 结果为false undefined <=undefined 结果为false undefined ==undefined 结果为true null 运算的时候转化为数字0 + -* 都为0 。 0/0,0%0 结果为NaN null 比较的时候转化为数字0比较
当遇到null的时候;会有特殊情况发生, 特殊情况:空串和null不相等 特殊情况:false和null不相等 特殊情况: 0和null不相等 特殊情况:undefined 和 null 相等; 先看是不是 + 如果是+ 看有没有字符串,如果有 就是拼接字符串
这部分摘自https://www.cnblogs.com/superan/p/12088298.html
console.log(typeof (1+'')) => string console.log(typeof (+'1')) => number
1.数据类型
js里有五种基本数据类型
number string boolean undefined null
, 一种复杂数据类型:object
ES6新增:Symbol
判断数据类型的方式可以使用:
typeof
, 需要注意typeof判断基础数据类型好使,除了null之外,typeof null == 'object'
2.显式类型转换
2.1 转换为数字
显示的转换为数字有三种方法:Number()、parseInt()、parseFloat()
2~32
parseInt()
一致,选择到第一个非数字位结束2.2 转换为字符串
有两种方法:toString() 和 String()
xxx
不能是 undefined或者 null2.3 转换为布尔值
undefined null -0 +0 NaN ''(空字符串): 这六项转换为都为false,其他都是true
Boolean(new Boolean(false)) == true
Boolean([]) Boolean({}) 也是 true
3.隐式类型转换
Number运算按数学运算进行,需要注意的是在进行小数运算时可能会不准确。结果一定为Number类型。 Number判断按照数学判断进行 结果为Boolean类型的true或false。 String运算两边转化为数字进行运算,普通字符串转化为Number类型的NaN进行运算,数字型字符串转化为数字例如:"123"转化为Number类型123.所有的东西和NaN进行算术运算都是NaN。还有最特殊的一点就是+,字符串进行加法运算时两边不会转化为数字,直接进行字符串拼接。结果为Number类型或字符串。 String比较的时候比较的是字符的Unicode码,不会转化数字进行比较 结果为Boolean类型的true或fals; Boolean运算的时候转化为数字,true转化为1,false转化为0,0/0,0%0 1%0结果为NaN,1/0结果为Infinity; Boolean比较的时候转化为数字,true转化为1,false转化为0,==并不会转化为数字。 undefined 运算的时候转化为数字NaN 所以所有结果均为NaN。 undefined 比较的时候不需要转化。undefined >=undefined 结果为false undefined <=undefined 结果为false undefined ==undefined 结果为true null 运算的时候转化为数字0 + -* 都为0 。 0/0,0%0 结果为NaN null 比较的时候转化为数字0比较
当遇到null的时候;会有特殊情况发生, 特殊情况:空串和null不相等 特殊情况:false和null不相等 特殊情况: 0和null不相等 特殊情况:undefined 和 null 相等; 先看是不是 + 如果是+ 看有没有字符串,如果有 就是拼接字符串
这部分摘自https://www.cnblogs.com/superan/p/12088298.html
console.log(typeof (1+'')) => string
console.log(typeof (+'1')) => number