typeof 是一个运算符,用来检测给定的变量或值的数据类型,返回的值为操作数的数据类型名称,是一个字符串结果。

使用格式如下:

typeof 操作数

说明:操作数可以是变量,也可以是具体的某个值(即字面量),返回值有以下几种:

undefined:表示操作数为未定义;

boolean:表示操作数为布尔值;

string:表示操作数为字符串;

number:表示操作数为数字;

object:表示操作数为对象或数组;

function:表示操作数为函数。

注意:函数也是一种对象,但 typeof 将函数视为特殊情况,所以检测函数时,返回的结果为 function,而不是 object。

使用 typeof 运算符检测数据类型的示例如下:

var miaov = 'ketang'; //声明变量,同时给变量赋值

console.log( typeof miaov ); //检测变量miaov,结果为:string

console.log( typeof 1 ); //检测数字1,结果为:number

console.log( typeof true ); //检测true,结果为:boolean

console.log( typeof false ); //检测false,结果为:boolean

console.log( typeof undefined ); //检测undefined,结果为:undefined

console.log( typeof null ); //检测null,结果为:object

console.log( typeof {} ); // 检测对象,结果为:object

console.log( typeof [] ); //检测数组,结果为:object

function func(){} //定义函数

console.log( typeof func );  //检测func函数类型,结果为:'function'

从代码的运行结果中看到,属于基本数据类型的 null,使用 typeof 检测时,结果却是 object,这似乎是说 null 应该属于引用类型。之所以出现这样结果,原因是:JavaScript 中的值在机器中都以二进制来表示,在 JavaScript 最初的实现中,JavaScript 中的值在机器中以 32 位单位存储,存储的值包括一个类型的标志和实际数据值两部分内容,类型标志使用低位的 1~3 三位来表示的。

对象的类型标志是低三位的 000。由于 null 代表的是空指针(大多数平台下值为 0x00),因此,typeof 会把 null 对应的二进制中的低三位 000 看成是对象的类型标志,从而错误地返回了 object。

java中typeof_JS typeof的用法相关推荐

  1. java中typeof_js typeof用法

    经常会在js里用到数组,比如 多个名字相同的input, 若是动态生成的, 提交时就需要判断其是否是数组. typeof的运算数未定义,返回的就是 "undefined". 运算数 ...

  2. Java中Date各种相关用法

    Java中Date各种相关用法 本文主要介绍Java中Date各种相关用法. AD:   Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=C ...

  3. java中arraycopy的用法_[jdk源码阅读系列]Java中System.arraycopy()的用法

    本文转载,原文链接: 3分钟了解Java中System.arraycopy的用法 - 伊万夫斯基 - 博客园  https://www.cnblogs.com/benjieqiang/p/114288 ...

  4. Java中split函数的用法及使用示例

    Java中split函数的用法及使用示例 2010-05-04 10:21 日志原文:http://lhgc.blog.sohu.com/80444801.html java.lang.string. ...

  5. JAVA中 BufferedImage、ImageIO用法

    转载:JAVA中BufferedImage.ImageIO用法 - 邓维-java - 博客园 (cnblogs.com) BufferedImage          BufferedImage是其 ...

  6. java中compare语句的用法,compare的用法_java中 compareTo()的程序代码及用法

    compare的用法与区别? 一.用法 v. (动词) 1.compare的基本意思是"比较,对照",主要用于比较事物的典型特征及其价值,而不在于比较相同与不同. 2.compar ...

  7. java中next()和nextline()用法区别(详细说明)

    java中next和nextline用法区别 一,方法说明 二,空格的情况(tab键相当于多个空个 1.测试代码 2.中间出现空格时 3.开头出现空格时 三,回车键的情况 分析:回车键的情况 四,常见 ...

  8. Java中Steam流的用法及使用备忘

    文章目录 Java中Steam流的用法及使用备忘 一. 流的常用创建方法 1-1 使用Collection下的 stream() 和 parallelStream() 方法 1-2 使用Arrays ...

  9. java中iterator用法_java_详解Java中Iterator迭代器的用法,迭代器(Iterator)迭代 - phpStudy...

    详解Java中Iterator迭代器的用法 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为&quo ...

最新文章

  1. java 获取麦克_Java Sound API-捕获麦克风
  2. 鸟哥的Linux私房菜(基础篇)-第一章、Linux是什么(一.1.Linux是什么)
  3. iOS安装CocoaPods的详细步骤
  4. java方法语法_Java基础语法----方法
  5. 找个轻量级的Log库还挺难
  6. 洛谷——P1597 语句解析(两种解法)
  7. 世界第一台电脑_研发世界第一台电脑的核心人物,被美国隐瞒35年,只因他是个华人...
  8. 插值法绘制山区地貌图和等高线
  9. con排插与单片机相连_单片机与8255芯片连接详解
  10. pythonsze_python学习笔记二 数据类型(基础篇)
  11. 云计算工程师必备技能图谱
  12. 基于SSM实现的水果店收银系统
  13. skewx 字体模糊_为什么网站设计宋体消除锯齿要用无,而其他字体如黑体用平滑,还有英文字体要用那种消除锯齿方式?...
  14. 使用hardhat开发以太坊智能合约-测试合约
  15. 车联网赋能末端物流自动驾驶探索
  16. 字节数组byte[]转有符号short和无符号unsignedShort
  17. 代码应用jFinal+AngularJs未来javaEE开发的趋势——程序员的福音
  18. 区块链双花攻击和自私采矿攻击的系统防御概述 论文解读
  19. 中国区首发 | 规模化敏捷RTE(企业级敏捷教练/发布火车工程师)国际认证课程
  20. 附指南原文下载-《GB/T 39725-2020 信息安全技术 健康医疗数据安全指南》解读(一)

热门文章

  1. 在华为推送平台给手机推送步骤
  2. 倍福服务器维修,Beckhoff TwinCAT
  3. 基于JAVA+SpringMVC+Mybatis+MYSQL的线上超市管理系统
  4. Codeforces 301A. Yaroslav
  5. python 进程 线程 协程
  6. margin系列之负值
  7. centos7 卸载软件
  8. 一个很cool的C#的高性能数学库
  9. 服务器芯片组c621,三路千兆LAN:GIGABYTE 技嘉 发布 C621-SU8 服务器主板
  10. 老式计算机显示器是什么类型的,电脑显示器面板类型有哪些,显示器什么面板好?...