• 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'
  • 相关阅读:
    requireJS搭建
    html启动本地.exe文件
    自定义input[type="checkbox"]的样式
    使用rem单位时css sprites的坑
    visibility API
    css动画
    去除ios端输入框的弹出
    *java类的生命周期
    处理高并发,防止库存超卖
    java注解的使用
  • 原文地址:https://www.cnblogs.com/Xuman0927/p/12050867.html
Copyright © 2020-2023  润新知