JavaScript中如何详述所有数据类型并准确检测其类型?

2026-04-09 11:371阅读0评论SEO教程
  • 内容介绍
  • 相关推荐

本文共计876个文字,预计阅读时间需要4分钟。

JavaScript中如何详述所有数据类型并准确检测其类型?

%E4%B8%80.js%E4%B8%AD%E7%9A%84%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E6%9C%89%E5%93%AA%E4%BA%9B%E5%9C%A8js%E4%B8%AD%EF%BC%8C%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E6%9C%89%E4%BA%94%E7%A7%8D%E5%88%86%E5%88%AB%E6%98%AF string%EF%BC%8Cnumber%EF%BC%8Cboolean%EF%BC%8Cnull%EF%BC%8Cundefined%E4%B8%8D%E8%BF%87%E5%9C%A8ES6%E4%B8%AD%E6%96%B0%E5%A2%9E%E5%8A%A0%E4%BA%86%E4%B8%80%E7%A7%8D%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8BSymbol%EF%BC%88%E8%A1%A8%E7%A4%BA%E7%8B%AC%E4%B8%80%E6%97%A0%E4%BA%8C%E7%9A%84%E5%80%BC%29%E5%85%B6%E4%BD%9C%E7%94%A8%E4%B8%BB%E8%A6%81%E6%98%AF%E4%BB%8E%E2%80%9D

一.js中的数据类型有哪些?

在js中,基本数据类型有五种,分别是 string、number、boolean、null、undefined,不过在ES6中新增加的了一种基本数据类型Symbol(表示独一无二的值),其作用主要是从根本上防止属性名的冲突而设定的。

除了基本数据类型之外,还有引用数据类型object,也有人称之为复杂数据类型,包含了我们常见的Array、Object、Function等。

所以现在js中的数据类型共有七种。

JavaScript中如何详述所有数据类型并准确检测其类型?

PS: Symbol数据类型通过Symbol函数生成。也就是说,对象的属性名现在可以有原来的字符串以及现在的Symbol类型俩种了,凡是属性名属于Symbol类型,就是独一无二的,可以保证不会与其他属性名冲突。

Symbol函数还可以接收一个字符串参数,表示对Symbol实例的描述。

let s = Symbol() console.log(typeof s) // "symbol" let s1 = Symbol('s1') let s2 = Symbol('s2') console.log(s1) // Symbol(s1) console.log(s2) // Symbol(s2)

注意:Symbol函数的参数只是表示对当前实例的描述,因此相同参数的Symbol的返回值是不相等的。

二.js数据类型检测的方法(一般有一下几种):

1.typeof:typeof一般用于检测基本数据类型,因为它检测引用数据类型都返回Objcet

console.log(typeof 1) // "number" console.log(typeof 'a') // "string" console.log(typeof undefined) // "undefined" console.log(typeof true) // "boolean" console.log(typeof null) // "object" console.log(typeof ) // "symbol" function fun(){ } console.log(typeof fun) // "function"

注意:typeof检测null也会返回Object,这是js一直以来遗留的BUG。用typeof检测function返回的是'function'。

2.instanceof 这个方法主要是用来准备的检测引用数据类型的(不能用来检测基本数据类型),用来检测构造函数的prototype属性是否出现在对象原型链中的任意位置。

let fun = function(){ } fun instanceof Function //true let obj ={ } obj instanceof Object //true let arr = [ ] arr instanceof Array //true

曾今被面试官问过一道题 1 instanceof 返回的是什么? 当时给因为自身原因说了返回true,现在想想Emmm…

1 instanceof Number //false null instanceof Object // false

instanceof运算符直接访问的变量的原始值,不会自动建立包装类。因此不能用来判断基本数据类型。

3.Object.prototype.toString()可以用来准备的检测所有数据类型。

Object.prototype.toString.call([]) // "object Array" Object.prototype.toString.call(1) // "object Number" Object.prototype.toString.call(null) // "object Null" Object.prototype.toString.call(undefined) // "object Undefined" Object.prototype.toString.call({}) // "object Object" Object.prototype.toString.call(function add(){}) // "object Function" ....

4.constructor通过检测类型在原型链中的constructor指向来返回布尔值。

let arr =[] arr.constructor==Array // true let fun = function(){} fun.constructor==Function //true

注意:null和undefined是没有constructor属性的,可以用其他方法判断。

通过几这次的总结,对于js的数据类型,以及如何检测数据类型有了深刻的认识,下次面试不慌张~

以上就是详解JavaScript中的数据类型,以及检测数据类型的方法的详细内容,更多关于JavaScript 数据类型的资料请关注自由互联其它相关文章!

本文共计876个文字,预计阅读时间需要4分钟。

JavaScript中如何详述所有数据类型并准确检测其类型?

%E4%B8%80.js%E4%B8%AD%E7%9A%84%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E6%9C%89%E5%93%AA%E4%BA%9B%E5%9C%A8js%E4%B8%AD%EF%BC%8C%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E6%9C%89%E4%BA%94%E7%A7%8D%E5%88%86%E5%88%AB%E6%98%AF string%EF%BC%8Cnumber%EF%BC%8Cboolean%EF%BC%8Cnull%EF%BC%8Cundefined%E4%B8%8D%E8%BF%87%E5%9C%A8ES6%E4%B8%AD%E6%96%B0%E5%A2%9E%E5%8A%A0%E4%BA%86%E4%B8%80%E7%A7%8D%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8BSymbol%EF%BC%88%E8%A1%A8%E7%A4%BA%E7%8B%AC%E4%B8%80%E6%97%A0%E4%BA%8C%E7%9A%84%E5%80%BC%29%E5%85%B6%E4%BD%9C%E7%94%A8%E4%B8%BB%E8%A6%81%E6%98%AF%E4%BB%8E%E2%80%9D

一.js中的数据类型有哪些?

在js中,基本数据类型有五种,分别是 string、number、boolean、null、undefined,不过在ES6中新增加的了一种基本数据类型Symbol(表示独一无二的值),其作用主要是从根本上防止属性名的冲突而设定的。

除了基本数据类型之外,还有引用数据类型object,也有人称之为复杂数据类型,包含了我们常见的Array、Object、Function等。

所以现在js中的数据类型共有七种。

JavaScript中如何详述所有数据类型并准确检测其类型?

PS: Symbol数据类型通过Symbol函数生成。也就是说,对象的属性名现在可以有原来的字符串以及现在的Symbol类型俩种了,凡是属性名属于Symbol类型,就是独一无二的,可以保证不会与其他属性名冲突。

Symbol函数还可以接收一个字符串参数,表示对Symbol实例的描述。

let s = Symbol() console.log(typeof s) // "symbol" let s1 = Symbol('s1') let s2 = Symbol('s2') console.log(s1) // Symbol(s1) console.log(s2) // Symbol(s2)

注意:Symbol函数的参数只是表示对当前实例的描述,因此相同参数的Symbol的返回值是不相等的。

二.js数据类型检测的方法(一般有一下几种):

1.typeof:typeof一般用于检测基本数据类型,因为它检测引用数据类型都返回Objcet

console.log(typeof 1) // "number" console.log(typeof 'a') // "string" console.log(typeof undefined) // "undefined" console.log(typeof true) // "boolean" console.log(typeof null) // "object" console.log(typeof ) // "symbol" function fun(){ } console.log(typeof fun) // "function"

注意:typeof检测null也会返回Object,这是js一直以来遗留的BUG。用typeof检测function返回的是'function'。

2.instanceof 这个方法主要是用来准备的检测引用数据类型的(不能用来检测基本数据类型),用来检测构造函数的prototype属性是否出现在对象原型链中的任意位置。

let fun = function(){ } fun instanceof Function //true let obj ={ } obj instanceof Object //true let arr = [ ] arr instanceof Array //true

曾今被面试官问过一道题 1 instanceof 返回的是什么? 当时给因为自身原因说了返回true,现在想想Emmm…

1 instanceof Number //false null instanceof Object // false

instanceof运算符直接访问的变量的原始值,不会自动建立包装类。因此不能用来判断基本数据类型。

3.Object.prototype.toString()可以用来准备的检测所有数据类型。

Object.prototype.toString.call([]) // "object Array" Object.prototype.toString.call(1) // "object Number" Object.prototype.toString.call(null) // "object Null" Object.prototype.toString.call(undefined) // "object Undefined" Object.prototype.toString.call({}) // "object Object" Object.prototype.toString.call(function add(){}) // "object Function" ....

4.constructor通过检测类型在原型链中的constructor指向来返回布尔值。

let arr =[] arr.constructor==Array // true let fun = function(){} fun.constructor==Function //true

注意:null和undefined是没有constructor属性的,可以用其他方法判断。

通过几这次的总结,对于js的数据类型,以及如何检测数据类型有了深刻的认识,下次面试不慌张~

以上就是详解JavaScript中的数据类型,以及检测数据类型的方法的详细内容,更多关于JavaScript 数据类型的资料请关注自由互联其它相关文章!