javascript常用方法(数据类型)

100 阅读1分钟
  • 检测数据类型
  1. typeof(数组,对象,null都返回Object)
typeof 2 //number
typeof '' //string
typeof false //boolean
typeof function(){} //function
  1. instanceof(只能判断引用数据类型)
[] instanceof Array //true
console.log({} instanceof Object) //true
console.log(function(){} instanceof Function)//true
  1. constructor(如果创建对象改变该数据原型,则constructor属性失效)
let str = ''
str.constructor === String //true

function Fn(){}
Fn.prototype = new Array()
let f1 = new Fn()

Fn.constructor === Function //true
f1.constructor === Function //false
f1.constructor === Array    //true
  1. Object.prototype.toString.call( )(使用 Object 对象的原型方法 toString 来判断数据类型)
let value = Object.prototype.toString

value.call(2) //'[object Number]'
value.call('').slice(8,-1) //'String'
value.call({}).slice(8,-1) //'Object'
value.call([]).slice(8,-1) //'Array'
  • 判断数组的方式
  1. Object.prototype.toString.call( )
Object.prototype.toString.call([]).slice(8,-1) === 'Array' //true
  1. 原型链
[]._proto_ === Array.prototype //true
  1. Array.isArray( )
Array.isArray([]) //true
  1. instanceof
[] instanceof Array //true
  1. Array.prototype.isPrototypeOf
Array.prototype.isPrototypeOf([]) //true