发表于: 2019-12-22 18:56:54
1 1190
number数字类型
包含:常规数字、NaN
NaN
not a number:不是一个数,但它率属于数字类型
NaN和任何值(包括自己)都不相等:NaN!=NaN,所以我们不能用相等的方式判断是否为有效数字
isNaN
检测一个值是否为非有效数字,如果不是有效数字返回TRUE,反之是有效数字返回FALSE
在使用isNaN进行检测的时候,首先会验证检测的值是否为数字类型,如果不是,先基于Number( )这个方法,把值转换为数字类型,然后再检测
把其它类型值转换为数字类型
Number([val])
parseInt/parseFloat([val],[进制]):也是转换为数字的方法,对于字符串来说,它是从左到右依次查找有效数字字符,直到遇到非有效数字字符,停止查找(不管后面是否还有数字,都不在找了),把找到的当做数字返回
==进行比较的时候,可能要出现把其它类型值转换为数字
string字符串数据类型
所有用单引号、双引号、反引号(撇 ES6模板字符串)包起来的都是字符串
把其它类型值转换为字符串
[val].toString()
字符串拼接
boolean布尔数据类型
只有两个值 true/false
把其它类型值转换为布尔类型
只有 0、NaN、''、null、undefined 五个值转换为FALSE,其余都转换为TRUE(而且没有任何的特殊情况)
Boolean([val])
!/!!
条件判断
null / undefined
null和undefined都代表的是没有
null:意料之中(一般都是开始不知道值,我们手动先设置为null,后期再给予赋值操作)
let num = null; //=>let num = 0; 一般最好用null作为初始的空值,因为零不是空值,他在栈内存中有自己的存储空间(占了位置)
...
num = 12;
undefined:意料之外(不是我能决定的)
let num; //=>创建一个变量没有赋值,默认值是undefined
...
num = 12;
object对象数据类型-普通对象
{[key]:[value],...} 任何一个对象都是由零到多组键值对(属性名:属性值)组成的(并且属性名不能重复)
数组是特殊的对象数据类型
alert、confirm、prompt三种方法得到的结果都经过了toString()方法的转换,得到的数据时字符串类型
评论