首页 > Web开发 > 详细

js数据类型的判断

时间:2021-08-24 10:08:49      阅读:22      评论:0      收藏:0      [点我收藏+]

1、利用typeof

// typeof 返回的结果都是字符串形式
console.log(typeof ("a"))                   // string
console.log(typeof (1))                     // number
console.log(typeof NaN)                     // number
console.log(typeof (true))                  // boolean
console.log(typeof (undefined))             // undefined
console.log(typeof (null))                  // object
console.log(typeof ({a: "1"}))              // object
console.log(typeof (new Object()))          // object
console.log(typeof ([2,4]))                 // object
console.log(typeof (new Array()))           // object
console.log(function fn() {})               // ? fn() {}

 

2、万能法 Object.prototype.toString.call()

var a = Object.prototype.toString.call("a")
console.log(a)                             // [object String]
var b = Object.prototype.toString.call(1)
console.log(b)                            // [object Number]
var c = Object.prototype.toString.call(true)
console.log(c)                            // [object Boolean]
var d = Object.prototype.toString.call(undefined)
console.log(d)                            // [object Undefined]
var e = Object.prototype.toString.call(null)
console.log(e)                            // [object Null]
var f = Object.prototype.toString.call({a: "a"})
console.log(f)                            // [object Object]
var g = Object.prototype.toString.call([])
console.log(g)                            // [object Array]
var h = Object.prototype.toString.call(function fn() {})
console.log(h)                            // [object Function]

 

3、instanceof

console.log([] instanceof Array)    // true
console.log({} instanceof Object)    // true
console.log(5 instanceof Number)    // false
console.log(new Number(5) instanceof Number)    // true
console.log("a" instanceof String)    // false
console.log(new String("a") instanceof String)  // true

// 注意5和new Number(5)
// 5是基本数据类型,它并不是Number函数构造出来的实例对象

 

4、constructor

console.log([].constructor)   // ? Array() { [native code] }
console.log({}.constructor)   // ? Object() { [native code] }
console.log("a".constructor)  // ? String() { [native code] }
var num = 5
console.log(num.constructor)  // ? Number() { [native code] }
var fn = function () {}
console.log(fn.constructor)   // ? Function() { [native code] }
console.log(null.constructor)  // Uncaught TypeError: Cannot read property ‘constructor‘ of null
console.log(undefined.constructor) // // Uncaught TypeError: Cannot read property ‘constructor‘ of undefined

// 注意null 和 undefined, 使用constructor都会报错,所以constructor无法区分null 和undefined

 

5、几种特殊的数据类型 做等于判断

console.log(undefined == null)          // true
console.log(undefined === undefined)    // true
console.log(undefined == undefined)     // true
console.log(null === null)              // true
console.log(null == null)               // true
console.log(undefined == NaN)           // false
console.log(null == NaN)                // false
console.log(NaN == NaN)                 // false
console.log(NaN === NaN)                // false
// NaN不等于任何值

 

js数据类型的判断

原文:https://www.cnblogs.com/hll1109/p/15178101.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!