前端系列知识之JS(es6)——内置类型

JS一共有七种内置类型,这其中内置类型又可以分为两大类型:数据类型和对象(object)
数据类型有六种:null、undefined、number、string、boolean、symbol
注意:JS中number中只有浮点型没有整型一说,而且是基于ieee 754标准``,这一点区别于其他编程语言。

  1. null类型
    null类型是第一个只包含一个值null的类型,而且是唯一一个typeof之后返回的是object类型的内置类型,原因是因为null值表示一个空对象指针,在 JS 的最初版本中,使用的是 32 位系统,为了性能考虑使用低位存储了变量的类型信息,000 开头代表是对象,然而 null 表示为全零,所以将它错误的判断为 object 。虽然现在的内部类型判断代码已经改变了,但是对于这个 Bug 却是一直流传下来。

  2. undefined类型
    undefined类型只有一个值undefined,声明变量而没有初始化时这个变量的值就是undefined

  3. boolean类型
    在条件判断时,除了 undefined, null, false, NaN, 空字符串, 0, -0,其他所有值都转为 true,包括所有对象。

  4. Number类型

  • 精度

浮点数值的最高精度是17位小数,但在进行算数计算式精确度远远不如整数,例如0.1+0.2=0.30000000000000004,所以不要做下面的测试,因为测试不会通过
if(a+b==0.3){
alert(‘You got 0.3’);
}

  • NaN
    NaN与任何值都不相等,包括NaN本身。
    isNaN(),用于检测一个参数是否是NaN,这个方法的原理类似于Number(),先把参数转换为数值,能转换为数值就是true,否则为false

  • 数值转换

  • Number():将任意参数转换为Number类型。此种方法在转换字符串时比较复杂,因此不建议使用。转换规则如下:

转换类型 转换后的值
Boolean true转换为1,false转换为0
数字值 只是简单的传入和返回
null 返回0
undefined NaN
字符串 如果是纯数字,将其转换为10进制对应的数字;如果是空字符串就转换为0;如果包含其他字符返回NaN
对象 调用valueOf()方法然后按照前面的规则转换返回的值;如果转换结果为NaN,再次使用toString()方法按照前面的规则继续转换
  • parseInt():忽略字符串前面的空格,直至找到第一个非空格字符串,如果第一个字符是非数字就返回NaN,否则就一直寻找下去直到找到非数字的字符
    例如:
var num1=parseInt("123gygy");//123
var num2=parseInt("");//NaN
var num3=parseInt("0xA");//10
var num4=parseInt(22.4);//22

 

  1. String类型
    num.toString(n),其中n代表进制,比如toString(2)代表转换为2进制字符串,默认转换字符串副本,其中null和undefined没有toString()方法,可用String()方法。

猜你喜欢

转载自blog.csdn.net/qq_23864401/article/details/85527377