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'
  • 相关阅读:
    从Active Directory中获取用户信息 [转载]
    使用System.DirectoryServices.Protocols实现对AD的简单操作[转载]
    phpMyAdmin 尝试连接到MySQL 服务器的错误解决方法
    MYSQL phpmyadmin恢复数据(#2006 MySQL server has gone away)
    解决IBM T23笔记本的Resource Conflict 问题
    打造自己地图AxTOCContrl树形控件——XUTocControl(成功解决节点控件拖拽问题)
    mantis配置收集(转载)
    仿World Wind构造自己的C#版插件框架——WW插件机制精简改造
    两台oracle数据库相互导数据(转载)
    将SATA硬盘驱动嵌入Windows XP安裝盘(转载)
  • 原文地址:https://www.cnblogs.com/Xuman0927/p/12050867.html
Copyright © 2011-2022 走看看