zoukankan      html  css  js  c++  java
  • JavaScript 学习之 instanceOf, typeOf 运算符

    JavaScript的类型,分成原生类型和对象。其中,null, undefined, boolean(true, false), number, string是原生类型,而其他的都是对象(包括数组、类、函数)。而instanceOf是一个二元操作符,左侧是一个对象,右侧是对象的类型。所以把原生类型放在左右侧都是不合适的,instanceOf会返回false。


    如下的例子帮助理解:

            function test_instaceOf() {
    
                var num = 1;
                console.log(num instanceof Number);             // false*
                console.log(num instanceof Object);             // false*
                console.log(Number(num) instanceof Number);     // false*
                console.log(Number(num) instanceof Object);     // false*
                console.log(1 instanceof Number);               // false*
                console.log(NaN instanceof Number);             // false*
                console.log("" instanceof String);              // false*
                console.log(String("abc") instanceof String);   // false*
    
                console.log(new Number(num) instanceof Number);     // true
                console.log(new Number(num) instanceof Object);     // true
                console.log(new Number(1) instanceof Number);       // true
                console.log(new Number(NaN) instanceof Number);     // true
                console.log(new String("") instanceof String);      // true
                console.log(new String("abc") instanceof String);   // true
    
                console.log({} instanceof Object);              // true
                console.log([] instanceof Object);              // true
                console.log([] instanceof Array);               // true
    
                console.log(new Object(null) instanceof Object);   // true
                console.log(null instanceof Object);               // false
                console.log(undefined instanceof Object);          // false
    
                try {
                    console.log(undefined instanceof undefined);
                } catch (e) {
                    console.log("exception");                   // exception!
                }
            }
    
    注意,只有使用了new关键字,才能把原生类型正真转换成对象(相当于wrap在对象里面),而简单的类型转换(用Number, String)是没用的。

    另外, typeOf操作符,是一元操作符,可以用来检测原生类型,他接受任意类型,返回的是一个字符串(小写):

            function test_typeof() {
                console.log(typeof 1);                              // number
                console.log(typeof true);                           // boolean
                console.log(typeof "string");                       // string
                console.log(typeof new Date(2001, 1, 1));           // object
                console.log(typeof new RegExp("reg expression"));   // object
                console.log(typeof function () { });                // function
                console.log(typeof {});                             // object
                console.log(typeof []);                             // object
                console.log(typeof null);                           // object
                console.log(typeof undefined);                      // undefined
                console.log(typeof NaN);                            // number
            }



  • 相关阅读:
    PHP变量的使用
    php基础知识一
    PHP之 xampp 安装环境
    自动化测试框架selenium+java+TestNG——配置篇
    代码规范体会篇
    寒假作业2(两篇随笔)
    寒假作业二之自学计划
    寒假作业第二篇随笔(A+B)
    寒假随笔(开启程序设计大佬模式)
    页面即时消息提醒的实现
  • 原文地址:https://www.cnblogs.com/puncha/p/3876970.html
Copyright © 2011-2022 走看看