js 各种类型笔记

143 阅读1分钟

记录关于js数据类型的知识点。细碎,随时补充。

1. js中5种简单数据类型:Undefined、Null、Boolean、Number和String。一种复杂数据类型:Object里面包含的 function、Array、Date。

2. 获取数据类型:typeof 变量 例:let a=1 console.log(typeof a) //number

3. Number类型范围 console.log(Number.MAX_VALUE)//1.7976931348623157e+308                                     console.log(Number.MIN_VALUE)//5e-324

   js浮点数计算精度不准确如:let x=0.1 let y=0.2 console.log(x+y)//0.300000000000000004,这是因为计算机运算时转为二进制数

0.1 => 0.0001 1001 1001 1001..(无限循环)
0.2 => 0.0011 0011 0011 0011…(无限循环)

 其实对于浮点数的四则运算,几乎所有的编程语言都会有类似精度误差的问题,只不过在 C++/C#/Java 这些语言中已经封装好了方法来避免精度的问题,而 JavaScript 是一门弱类型的语言,从设计思想上就没有对浮点数有个严格的数据类型,所以精度误差的问题就显得格外突出。

解决办法一个是先四舍五入一下但会损失精度,另一个为先将浮点数转为整数计算后再转回去。

NaN:Not a Number的缩写,一般这样几种情况:0/0,Inf/Inf,Inf-Inf,Inf*0 使结果不确定导致出现NaN,NaN不与任何数相等,包括它本身。需要判断一个值是否为NaN,使用isNaN()。传入不是数字为真,是数字为假。

4. 类型转换

其他类型转数字:parseInt() parseFloat() Number()

其他类型转字符串:toString() toString不能转null,undefined这类值,会产生报错

其他类型转布尔:Boolean()

==比较值是否相等不比较类型

===比较值和类型是否都相等