zoukankan      html  css  js  c++  java
  • typeof和valueof、instance of 之间的区别

    1、typeof

    // typeof 返回的是类型的字符串值
    typeof undefined === 'undefined' // true
    typeof true === 'boolean' // true
    typeof 42 === 'number' // true
    typeof "42" === "string" // true
    typeof { life : 42 } === "object" // true
    
    
    // 特殊的类型
    typeof null === "object" // true
    // 需要用复合条件去检测null
    var a = null;
    (!a && typeof a === "object"); // true
    typeof function a(){/** */} === "function"; // true
     

    2、valueOf()函数用于返回指定对象的原始值。

    该方法属于Object对象,由于所有的对象都"继承"了Object的对象实例,因此几乎所有的实例对象都可以使用该方法。

    所有主流浏览器均支持该函数。

    var array = ["CodePlayer", true, 12, -5];
    document.writeln( array.valueOf() === array ); // true

    3、instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。

    var a=new Array();
    
    alert(a instanceof Array); // true
    另外,更重的一点是 instanceof 可以在继承关系中用来判断一个实例是否属于它的父类型。
    
    例如:
    
    function Foo(){} 
    Foo.prototype = new Aoo();//JavaScript 原型继承 
    var foo = new Foo(); 
    console.log(foo instanceof Foo)//true 
    console.log(foo instanceof Aoo)//true
    
    上面的代码中是判断了一层继承关系中的父类,在多层继承关系中,instanceof 运算符同样适用。
    
    
    又如:
    
    console.log(Object instanceof Object);//true 
    console.log(Function instanceof Function);//true console.log(Number instanceof Number);//false 
    console.log(String instanceof String);//false  
    console.log(Function instanceof Object);//true  
    console.log(Foo instanceof Function);//true 
    console.log(Foo instanceof Foo);//false
  • 相关阅读:
    第1章:程序设计和C语言(C语言入门)
    倒计时IE6+
    uploadify 使用 详细 说明
    HTTP 错误
    asp.net 向后台提交 html 代码段 包括 <> 标签
    C#使用NLog记录日志
    IE浏览器 location.href 不跳转
    .Net Core 导出Excel
    .net mvc 获取acion 返回类型
    sql sever 执行较大的文件脚本
  • 原文地址:https://www.cnblogs.com/Roxxane/p/13805696.html
Copyright © 2011-2022 走看看