JS -- (2) 基本数据类型(详)

36 阅读2分钟
一. 基本数据类型

目前有7大数据类型:numberstringbooleanundefinednullsymbolbigInt

<1> number

值的范围

ES 可以表示的最大值保存在 Number.MAX_VALUE中,最小值保存在Number.MIN_VALUE 中,超过这两个范围,就会被自动转化成一个特殊的值 Infinity 或者 - Infinity ,无穷大、无穷小的意思,这两个值不能参与任何运算!!!

(1) NaN

NaNnumber 的一种类型,用来表示不是数值。

typeof NaN  // number

例:

  • 0 / 0 ------> NAN
  • 5 / 0 ------> Infinity

注意:

  • 涉及 NaN 的操作始终返回 NaN
  • NaN 不与包括 NaN在内的任何值相等!!!
NaN == NaN  // false

补:isNaN() 与 Nunber.isNaN() 的区别:

  • isNaN() 会先对传入的参数进行类型转换,转换为数字number类型,如果不能进行转换就会返回 true ,可以就返回 false

  • Number.isNaN() 不会对传入的参数进行类型转换,会直接判断传入的参数是否为 数字number类型,如果不是,直接返回 false;如果是,才会进一步判断是否为 NaN 。

    -  console.log(isNaN('aaa'));  // true
       console.log(Number.isNaN('aaa'))  // false
    
  • 所以说 Number.isNaN() 进行的判断更准确!!!

(2) 0.1 + 0.2 !== 0.3

2130.png

那怎么使 0.1 + 0.2 = 0.3

// 用 toFixed(n) 方法,进行四舍五入,保留传入的参数,n位小数
(0.1 + 0.2).toFixed(2) // 0.30
<2> string

字符串是不可改变的,要修改,需要先销毁原先的字符串

<3> undefined

undefined 是一个假值!!!

  • 对于未声明声明了但没有赋值进行初始化的,用typeof都会返回 undefined
<4> null

null 主要用于赋值给一些可能会返回对象的变量,作为初始化。使其初始化为null(空)

注意:

null == undefined  //true
null === undefined   // false
<5> boolean
<6> symbol
let a = Symbol("foo")   let b = Symbol("foo")
a == b // false
  • 如果要共享和重用 Symbol 实例 ,可以用 Symbol.for() 方法,例如 Symbol.for("a") 会先检查全局有没有用字符串"a" 注册的符号,有就用它,没有就新建一个。
  • 可以用来做属性名