zoukankan      html  css  js  c++  java
  • javascript-typeof和instanceof区别

    javascript-typeof和instanceof区别

    typeof

    typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。
    它返回值是一个字符串,该字符串说明运算数的类型。(typeof 运算符返回一个用来表示表达式的数据类型的字符串)
    typeof其实就是判断参数是什么类型的实例,就一个参数

    typeof 一般只能返回如下几个结果:"number"、"string"、"boolean"、"object"、"function" 和 "undefined"。

    var num = 1;
    console.log(typeof num);//number
    console.log(typeof NaN);//number
    var flag = true;
    console.log(typeof flag);//boolean
    var isNull = null;
    console.log(typeof isNull);//object
    var name = "ChanSamKwan";
    console.log(typeof name);//string
    var variable;
    console.log(typeof variable)//undefined
    var arr = [1,2,3];
    console.log(typeof arr);//object
    var obj = {name:"yoyo"};
    console.log(typeof obj)//object
    function showName(name){
        console.log(name)
    }
    console.log(typeof showName)//function

    可以看到在使用 typeof 运算符时运算引用类型时,无论引用的是什么类型的对象,它都返回 “object”,(注意typeof null也是返回字符串object,函数返回 function字符串)
    这就需要用到instanceof来检测某个对象是不是另一个对象的实例。instanceof运算符测试构造函数的prototype属性是否出现在对象的原型链中的任何位置

     instanceof

    // 定义构造函数
    function C(){} 
    function D(){} 
    var o = new C();
    o instanceof C; // true,因为 Object.getPrototypeOf(o) === C.prototype
    o instanceof D; // false,因为 D.prototype 不在 o 的原型链上
    o instanceof Object; // true,因为 Object.prototype.isPrototypeOf(o)返回true
    C.prototype instanceof Object // true,同上
    C.prototype = {};
    var o2 = new C();
    o2 instanceof C; // true
    o instanceof C; // false,C.prototype指向了一个空对象,这个空对象不在o的原型链上.
    D.prototype = new C(); // 继承
    var o3 = new D();
    o3 instanceof D; // true
    o3 instanceof C; // true 因为 C.prototype现在在o3的原型链上
  • 相关阅读:
    小结一下在函数使用的时候加括号和不加括号的区别
    总结一下
    JavaScript中操作有些DOM时关于文本节点和元素节点的问题。
    HP DL388 gen9服务器安装RHEL 6.5系统
    第一次经历黑客攻击服务器系统
    小红帽5.9 配置静态IP上网问题
    redhat linux enterprise 5 输入ifconfig无效的解决方法
    关于将一台电脑分割成2个独立运行个体的测试...(1)
    Ubuntu 小白安装血泪史
    RHL 6.0学习日记, 先记下来,以后整理。
  • 原文地址:https://www.cnblogs.com/kootimloe/p/13332308.html
Copyright © 2011-2022 走看看