zoukankan      html  css  js  c++  java
  • JS 中 判断数据类型 typeof详解

    typeof 可用来获取检测变量的数据类型

    语法

    typeof operand

    typeof(operand)

    参数

    operand   一个表示对象或原始值的表达式,其类型将被返回。

    描述

    下表总结了 typeof 可能的返回值。有关类型和原始值的更多信息,可查看

    
    
    类型结果
    Undefined "undefined"
    Null "object" (见下文)
    Boolean "boolean"
    Number "number"
    BigInt "bigint"
    String "string"
    Symbol (ECMAScript 2015 新增) "symbol"
    宿主对象(由 JS 环境提供) 取决于具体实现
    Function 对象 (按照 ECMA-262 规范实现 [[Call]]) "function"
    其他任何对象 "object"
     
    // 数值 number
            console.log(typeof 37);
            console.log(typeof 3.14);
            console.log(typeof(42));
            console.log(typeof Math.LN2);
            console.log(typeof Infinity);
            console.log(typeof Number(1)); //Number()函数 会尝试把参数解析成数值
            console.log(typeof NaN); //尽管它是 "Not-A-Number" (非数值) 的缩写
    
    
    // 字符串 string
            console.log(typeof '');
            console.log(typeof 'bla');
            console.log(typeof `template literal`);
            console.log(typeof '1'); //注意内容为数字的字符串仍是字符串
            console.log(typeof(typeof 1)); //总是返回一个字符串
            console.log(typeof String(1)); //String() 函数把对象的值转换为字符串 将任意值转换为字符串,比 toString 更安全
    // 布尔值 boolean
            console.log(typeof true);
            console.log(typeof false);
            console.log(typeof Boolean(1)); //Boolean() 会基于参数是真值还是虚值进行转换
            console.log(typeof !!(1)); //两次调用 ! (逻辑非) 操作符相当于 Boolean()
     // Symbols symbols
            console.log(typeof Symbol());
            console.log(typeof Symbol('foo'));
            console.log(typeof Symbol.iterator);
            console.log("-----------------------------------------");
     // Undefined   undefined
            console.log(typeof undefined);
            console.log(typeof declaredButUndefinedVariable);
            console.log(typeof undeclaredVariable);
    // 对象 object
            console.log(typeof {
                a: 1
            });
            console.log(typeof [1, 2, 4]);
            console.log(typeof new Date());
            console.log(typeof /regex/); // 历史结果请参阅正则表达式部分
            console.log("-----------------------------------------");
    // 函数  function
            console.log(typeof
                function() {});
            console.log(typeof class C {});
            console.log(typeof Math.sin);

    null

    // JavaScript 诞生以来便如此
    typeof null === 'object';
    使用 new 操作符
    // 除 Function 外的所有构造函数的类型都是 'object'
    var str = new String('String');
    var num = new Number(100);
    
    typeof str; // 返回 'object'
    typeof num; // 返回 'object'
    
    var func = new Function();
    
    typeof func; // 返回 'function'

    语法中的括号

     

    // 括号有无将决定表达式的类型。
    var iData = 99;
    
    typeof iData + ' Wisen'; // 'number Wisen'
    typeof (iData + ' Wisen'); // 'string'
  • 相关阅读:
    ORACLE各种对象、概念及关系整理(一文读懂)
    Spring面试题总结及答案
    MySQL面试总结
    可变参数,你还为方法的参数而烦恼吗?可变参数,让你的头发从此“茂密”!
    java编译报错: 找不到或无法加载主类 Demo.class 的解决方法
    java编译报错 错误: 编码GBK的不可映射字符
    sql server2017开启远程连接
    sql server一些快捷方式和操作技巧
    sql server无法连接本地服务器
    phpStorm+xdebug调试(php7.3)
  • 原文地址:https://www.cnblogs.com/Xuman0927/p/12050867.html
Copyright © 2011-2022 走看看