• 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'
  • 相关阅读:
    [LeetCode 1029] Two City Scheduling
    POJ 2342 Anniversary party (树形DP入门)
    Nowcoder 106 C.Professional Manager(统计并查集的个数)
    2018 GDCPC 省赛总结
    CF 977 F. Consecutive Subsequence
    Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)
    Poj 2337 Catenyms(有向图DFS求欧拉通路)
    POJ 1236 Network of Schools (强连通分量缩点求度数)
    POJ 1144 Network (求割点)
    POJ 3310 Caterpillar(图的度的判定)
  • 原文地址:https://www.cnblogs.com/Xuman0927/p/12050867.html
Copyright © 2020-2023  润新知