javascript概念简讲(2)-类型

163 阅读1分钟

类型

静态类型跟动态类型 js属于动态类型
typescript java属于静态类型

原始类型

  • undefined
  • null
  • number
  • string
  • symbol

其余属于object,包含function,array

令人混淆的类型

  • null
typeof null // WTF "object"!!

一个通俗的解释

if (isUndefined) {
  return "undefined";
} else if (isObject) {
  if (isFunction) {
    return "function";
  } else {
    return "object";
  }
}
  • NAN
typeof NAN //"number"

NAN是被定义为数字但是不是真实的数字

  • 原始类型隐式转换
let str = new String("123");
typeof str; //'object'

str = str +'1';

typeof str //'string'

原始类型不是object没有方法,那么为什么可以调用方法呢?
实际原始类型都有对应的Object类型,js引擎隐式转换成对应的object对象来实现。