JS 基础知识点及常考面试题(一)1

js类型 原始类型 引用类型 typeof

  • typeof 返回值 6种 number string boolean undefined object(数组也是对象) function
  • js5/6中基本数据类型(原始类型):number string boolean undefined null (symbol)
  • js2种引用类型:object function
    -特殊数据类型 :undefined null
  • 关于NAN:NAN typeof NAN => Number

NAN = NAN // NAN
NAN运算结果NAN ,NAN转布尔false
NAN == NAN //false
NAN === NAN //false
原理:

  • NaN ,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)
  • 任何与NaN进行运算的结果均会为NaN,NaN与自身不相等(NaN不与任何值相等)

isNAN() //output Boolean

undefined null

null
  • typeof null //output object
    解释:这只是 JS 存在的一个悠久 Bug,
    ——— JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息, 000 开头代表是对象,然而 null 表示为全零,所以将它错误的判断为 object 。
    ———现在的内部类型判断代码已经改变了,但是对于这个 Bug 却是一直流传下来
  • null == undefined //output true
undefined
  • typeof undefined // output undefined
  • null == undefined //output true
  • undefined 全局变量 声明未赋值的 函数无返回值的 均返回undefined 类型
关系
  • 提示: Null undefined 没有.tostring 方法 强制会报错
  • 关系link

尽管null和undefined有这样的关系,但它们的用途完全不同,如前所述,>无论什么情况下都没有必要把一个变量的值显式地设置为undefined,可视同样的规则对null却不适用。换句话说,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。这样做不仅可以体现null作为空对象指针的惯例,而且也有助于进一步区分null和undefined。

你可能感兴趣的:(JS 基础知识点及常考面试题(一)1)