类型检查


js 类型检查

几种常用类型检查

typeof 与 instanceof

  • typeof 用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果:
    number,boolean,string,function(函数,正则表达式),object(NULL,数组,对象),undefined。如:console.log(typeof (123));//返回”number” console.log(typeof (“123″));//返回”string”

  • instanceof 。使用typeof 在检查null,数组,对象时都会返回object ,在判断它们时,可以使用另一个操作符
    var a = new Array(); console.log(a instanceof Array) // 返回true
    console.log(a instanceof Object) // 返回 Array 是object 的子类。也会返回true.
    但是这个操作符的问题在于它假定只存在一个全局的执行环境,存在多个框架的情景下,会存在两个不同的数组构造函数,这里就引入了另一个方法来判断数组

  • isArray() ECMAScript5 新增的Array.isArray() 方法,无论执行环境,只有一个目的,判断是不是数组

  • Object.prototype.toString.call() 原生的toString() 方法,都会返回一个[object NativeConstructorName] 格式的字符串。
    var a = new Array()
    Object.prototype.toString.call(a) == "[object Array]"
    使用这种方法不仅可以判断数组,还可以判断其他类型。
    Object.prototype.toString.call(value) =="[object Function]"
    {}.prototype.toString.call(value) =="[object JSON]" //这种方法也可以 检查原生的JSON对象


发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>