JS的基本数据类型

JavaScript012

JS的基本数据类型,第1张

JS中一共有六种基本数据类型,分别是Undefined、Null、Boolean、Number、String,还有在ES6中新增的Symbol和ES10中新增的BigInt类型。

1. Undefined:未定义型   

一个变量声明了但是未赋值的情况下就是undefined;

2. Null:空型

一般用来清空变量,也起了占位作用

3. String:字符型

凡是被双引号或单引号包裹起来的都叫做字符型,字符串有length属性。

4. Number:数值型

包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值。

(1)NaN:非数字类型。

特点:①涉及到的任何关于NaN的操作,都会返回NaN   

           ② NaN不等于自身。

(2)isNaN() :用于检查其参数是不是数值,得到的结果是一个布尔值,不是数值返回true,是数值返回false。

5. Boolean:布尔型

只有true和false两个值。

6. Symbol代表创建后独一无二且不可变的数据类型,它的出现我认为主要是为了解决可能出现的全局变量冲突的问题。

7. BigInt是一种数字类型的数据,它可以表示任意精度格式的整数,使用BigInt可以安全地存储和操作大整数,即使这个数已经超出了Number能够表示的安全整数范围。

首先!是取反操作,只能用于布尔类型。也就是说!false 和 true是等价的。如果!用于任何非布尔类型的变量或者值的时候。js会先把该变量或者该值转换为布尔类型,然后再进行取反操作。而js在进行布尔类型值的转换的时候会遵循以下原则。任何非0的数值类型转换成布尔值都为true,数值0转换成布尔值为false。任何非空字符串(包括空格)转换成布尔值都为true,空的字符串转换为布尔值为false。任何非undefined值转换成布尔值都为true,undefined值转换为布尔值时为false。任何非null值转换成布尔值都为true,null值转换为布尔值为false。也就是说object.sort为undefined(未定义)时用两个!符号运算会先把object.sort转换成布尔值,遵循上面的原则得到的布尔值是false。然后再进行两次取反操作,最终得到的值还是false。其余的值也是一样,会先把右边的值转换成布尔值,然后再进行两次取反操作。因此最终的结果就是该值转换为布尔的值。所以!!object.sort永远等价于Boolean(object.sort)即return !!object.sort可以用return Boolean(object.sort)代替。望采纳,谢谢!

参考文献: https://www.cnblogs.com/zjx304/p/9782942.html

"!!" 将表达式进行强制转化为boolean值的运算,运算结果为true或者false。

1、未初始化的变量

2、不返回任何结果的函数的调用结果

3、不存在的对象属性或方法

4、越界索引数组元素

1、在js的dom元素获取中,如果没有获取到指定的元素对象,结果一般是null。

2、Object.prototype. proto 的值是null。

3、在正则捕获的时候,如果没有捕获到结果,默认也是null。