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

语法

typeof operand

typeof(operand)

参数

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

描述

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

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

null

  1. // JavaScript 诞生以来便如此
  2. typeof null === 'object';
  1. 使用 new 操作符
  2. // 除 Function 外的所有构造函数的类型都是 'object'
  3. var str = new String('String');
  4. var num = new Number(100);
  5.  
  6. typeof str; // 返回 'object'
  7. typeof num; // 返回 'object'
  8.  
  9. var func = new Function();
  10.  
  11. typeof func; // 返回 'function'

语法中的括号

  1. // 括号有无将决定表达式的类型。
  2. var iData = 99;
  3.  
  4. typeof iData + ' Wisen'; // 'number Wisen'
  5. typeof (iData + ' Wisen'); // 'string'

JS 中 判断数据类型 typeof详解的更多相关文章

  1. js中判断数据类型的四种方法总结

    js中判断数据类型的四种方法 前言 在js中,我们经常需要判断数据的类型,那么哪些方法可以用来判断数据的类型呢?哪种方法判断数据类型最准确呢? 我们来一个个分析: 1.typeof typeof是一个 ...

  2. JS中的event 对象详解

    JS中的event 对象详解   JS的event对象 Event属性和方法:1. type:事件的类型,如onlick中的click:2. srcElement/target:事件源,就是发生事件的 ...

  3. js中鼠标滚轮事件详解

    js中鼠标滚轮事件详解   (以下内容部分内容参考了http://adomas.org/javascript-mouse-wheel/ ) 之前js 仿Photoshop鼠标滚轮控制输入框取值中已使用 ...

  4. js中中括号,大括号使用详解

    js中中括号,大括号使用详解 一.总结 一句话总结:{ } 是一个对象,[ ] 是一个数组 1.js大括号{}表示什么意思? 对象 { } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或 ...

  5. JS中判断数据类型的几种方法

    1⃣️首先我们来了解一下js中的数据类型 1.基本数据类型:Undefined.Null.Boolean.Number.String(值类型) 2.复杂数据类型:Object(引用类型) (值类型和引 ...

  6. js入门 关于js属性及其数据类型(详解)

    1. js的本质就是处理数据.数据来自于后台的数据库. 所以变量就起到一个临时存储数据的作用. ECMAScript制定了js的数据类型. 数据类型有哪些? 1. 字符串   String 2. 数字 ...

  7. js中判断数据类型的4中方法

    注意: js中数据类型有7种(number, boolean, string, null, undefined, object, Symbol(es6新增)) 原始数据类型: number, stri ...

  8. JS中的this对象详解

    JS中this关键字很常见,但是它似乎变幻莫测,让人抓狂.这篇文章就来揭示其中的奥秘. 借助阮一峰老师的话:它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.这句话看似平常,可是要非常注意 ...

  9. JS中的this用法详解

    随着对js的深入学习和使用,你会发现它里面包含了很多令人困惑的机制,比如对象.闭包.原型链继承等等,而这其中肯定包含令你现在或者曾经费解的this,如果你不把心一横,花点时间还真不明白这个this的用 ...

随机推荐

  1. AttributeError: 'unicode' object has no attribute 'tzinfo' 未解决

    Internal Server Error: /demo/machineinfo.htmlTraceback (most recent call last): File "C:\Python ...

  2. js中scroll滚动相关

    js中scroll滚动相关 scroll,滚动,一般讨论的是网页整体与浏览器之间的关系. 一.元素相关 属性/方法 解释 element.scrollHeight 返回元素的整体高度. element ...

  3. kvm2

    kvm虚拟机的桥接网络 默认的虚拟机网络是NAT模式,网段192.168.122.0/24 1:创建桥接网卡 创建桥接网卡命令 virsh iface-bridge eth0 br0 取消桥接网卡命令 ...

  4. SpringBoot(十二):SpringBoot整合Mybatis-Plus

    本节版本虽然只用到了基本特性,但可以满足大部分的增删改查. 一.环境准备SpringBoot 1.5.10.RELEASEMybatis-Plus 2.1.9Mybatis-Plus 官方地址:htt ...

  5. The Preliminary Contest for ICPC Asia Shenyang 2019

    传送门 B. Dudu's maze 题意: 是什么鬼东西???我读题可以读半小时QAQ 给出一张无向图,一个人在里面收集糖果,每个点都有一个糖果,特殊点除外.当他第一次进入特殊点时,会随机往一条边走 ...

  6. day83_11_1 阿里配python使用。

    一.环境准备. 1.首先需要在支付包中注册开发者模式,并注册沙箱,模拟支付过程. https://openhome.alipay.com/platform/appDaily.htm?tab=info ...

  7. day87_11_7微信小程序之登录,支付(获取ip,requests使用),授权

    一.登录接口. 官方文档https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 在登录接口 ...

  8. Java入门程序HelloWorld

    程序开发步骤说明 开发环境已经搭建完毕,可以开发我们第一个Java程序了.Java程序开发三步骤:编写.编译.运行.如下图所示 详解: 编写源程序:通俗来说就是我们通过Java的语法自己写的代码 编译 ...

  9. HTML网页自动跳转(重定向)

    HTML网页自动跳转(重定向) meta <head> <meta http-equiv="refresh" content="5;url=https: ...

  10. WPF 精修篇 数据绑定 更新通知

    原文:WPF 精修篇 数据绑定 更新通知 开始更新一点有意思的了 首先 数据绑定  其中之一 Element 绑定 看例子 <Window x:Class="WpfApplicatio ...