JavaScript数据类型
liang👍2020-05-15 21:32:210

JavaScript数据类型

基本数据类型

1. Number
2. String
3. Null
4. Undefined
5. Boolean
6. Symbol
7. BigInt

引用数据类型

1. Object

typeof 操作符返回值

类型 结果
Number number
String string
Null 和 其他对象 object
Undefined undefined
Boolean boolean
Symbol symbol
BigInt bigint
Function 对象 function

需要注意的点

  1. ```javascript
    typeof class C {} === 'function'
2. ```js
   typeof new Number(1) === 'object'

通用的获取数据类型方法

Object.prototype.toString

toString是Object原型对象上的一个方法,该方法默认返回其调用者的具体类型,更严格的讲,是toString运行时this指向的对象类型, 返回的类型格式为[object,xxx],xxx是具体的数据类型

Object.prototype.toString.call('') ;   // [object String]
Object.prototype.toString.call(1) ;    // [object Number]
Object.prototype.toString.call(true) ; // [object Boolean]
Object.prototype.toString.call(undefined) ; // [object Undefined]
Object.prototype.toString.call(null) ; // [object Null]
Object.prototype.toString.call(new Function()) ; // [object Function]
Object.prototype.toString.call(new Date()) ; // [object Date]
Object.prototype.toString.call([]) ; // [object Array]
Object.prototype.toString.call(new RegExp()) ; // [object RegExp]
Object.prototype.toString.call(new Error()) ; // [object Error]
Object.prototype.toString.call(document) ; // [object HTMLDocument]
Object.prototype.toString.call(window) ; //[object Window]

需要注意的是,必须通过Object.prototype.toString.call来获取,而不能直接new Date().toString(), 从原型链的角度讲,所有对象的原型链最终都指向了Object, 按照JS变量查找规则,其他对象应该也可以直接访问到Object的toString方法,而事实上,大部分的对象都实现了自身的toString方法,这样就可能会导致Object的toString被终止查找,因此要用call来强制执行Object的toString方法。


参考链接

  1. MDN JavaScript 数据类型和数据结构
  2. 掘金 JS数据类型分类和判断

更新时间:2022-04-06 21:42:57

文章分类:JavaScript

喜欢

暂时还没有评论 不如来抢个沙发