js中typeof用法详细介绍

【详解js中typeof与instance of区别】 typeof 和 instanceof 是 JavaScript 中用于类型检测的两种主要方法,各有其特点和局限性。typeof 是一元运算符,返回基本类型的字符串表示,适用于检测基本数据类型和函数,但对引用类型(如数组、对象)统一返回 "object",且存在 typeof null 返回 "object" 的历史遗留问题。instanceof 是二元运算符,用于检查对象是否为某构造函数的实例,基于原型链判断,适用于引用类型,但对基本类型无效,且受原型链完整性和跨全 阅读详情
本文章来介绍在js使用中的一个函数typeof用法, typeof 运算符把类型信息当作字符串返回,包括有大家常有变量类型。

typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."我们可以使用typeof来获取一个变量是否存在,如if(typeof a!="undefined"){},而不要去使用if(a)因为如果a不存在(未声明)则会出错,对于Array,Null等特殊对象使用typeof一律返回object,这正是typeof的局限性。


typeof 语法中的圆括号是可选项。


if(document.mylist.length != “undefined” ) {} 这个用法有误.

正确的是 if( typeof(document.mylist.length) != “undefined” ) {}

或 if( !isNaN(document.mylist.length) ) {}

typeof的运算数未定义,返回的就是 “undefined”.

运算数为数字 typeof(x) = “number”

字符串 typeof(x) = “string”

布尔值 typeof(x) = “boolean”

对象,数组和null typeof(x) = “object”

函数 typeof(x) = “function”

typeof 运算符返回一个用来表示表达式的数据类型的字符串。
可能的字符串有:”number”、”string”、”boolean”、”object”、”function” 和 “undefined”。
如:

 代码如下 复制代码
alert(typeof (123));//typeof(123)返回”number”
alert(typeof (“123″));//typeof(“123″)返回”string”

 
对于Array,Null等特殊对象使用typeof一律返回object,这正是typeof的局限性。

如果我们希望获取一个对象是否是数组,或判断某个变量是否是某个对象的实例则要选择使用instanceof。instanceof用于判断一个变量是否某个对象的实例,如var a=new Array();alert(a instanceof Array);会返回true,同时alert(a instanceof Object)也会返回true;这是因为Array是object的子类。再如:function test(){};var a=new test();alert(a instanceof test)会返回true。

友情提示

a instanceof Object 得到true并不是因为 Array是Object的子对象,而是因为 Array的prototype属性构造于Object,Array的父级是Function

Examples

// Numbers
typeof 37 === 'number';
typeof 3.14 === 'number';
typeof(42) === 'number';
typeof Math.LN2 === 'number';
typeof Infinity === 'number';
typeof NaN === 'number'; // Despite being "Not-A-Number"
typeof Number(1) === 'number'; // but never use this form!


// Strings
typeof "" === 'string';
typeof "bla" === 'string';
typeof (typeof 1) === 'string'; // typeof always returns a string
typeof String("abc") === 'string'; // but never use this form!


// Booleans
typeof true === 'boolean';
typeof false === 'boolean';
typeof Boolean(true) === 'boolean'; // but never use this form!


// Symbols
typeof Symbol() === 'symbol'
typeof Symbol('foo') === 'symbol'
typeof Symbol.iterator === 'symbol'


// Undefined
typeof undefined === 'undefined';
typeof declaredButUndefinedVariable === 'undefined';
typeof undeclaredVariable === 'undefined'; 


// Objects
typeof {a:1} === 'object';

// use Array.isArray or Object.prototype.toString.call
// to differentiate regular objects from arrays
typeof [1, 2, 4] === 'object';

typeof new Date() === 'object';


// The following is confusing. Don't use!
typeof new Boolean(true) === 'object'; 
typeof new Number(1) === 'object'; 
typeof new String("abc") === 'object';


// Functions
typeof function(){} === 'function';
typeof class C {} === 'function';
typeof Math.sin === 'function';

null

// This stands since the beginning of JavaScript
typeof null === 'object';

In the first implementation of JavaScript, JavaScript values were represented as a type tag and a value. The type tag for objects was 0. null was represented as the NULL pointer (0x00 in most platforms). Consequently, null had 0 as type tag, hence the bogus typeof return value. (reference)

A fix was proposed for ECMAScript (via an opt-in), but wasrejected. It would have resulted intypeof null === 'null'.

Regular expressions

Callable regular expressions were a non-standard addition in some browsers.

typeof /s/ === 'function'; // Chrome 1-12 Non-conform to ECMAScript 5.1
typeof /s/ === 'object';   // Firefox 5+  Conform to ECMAScript 5.1

Exceptions

All current browsers expose a non-standard host object document.all with type Undefined.

typeof document.all === 'undefined';

Although the specification allows custom type tags for non-standard exotic objects, it requires those type tags to be different from the predefined ones. The case of document.all having type tag'undefined' must be classified as an exceptional violation of the rules.



解析 typeof 和 instanceof 阅读详情

相关推荐

JS面试题

单选题 JS基础 js概念与类型检测 以下不属于 typeof 运算符返回值的是? A."string" B."function" C."object" D."null" 复制代码 执行以下代码,错误的输出结果是 A. 输入:typeof{"x":1}输出:"object" B. 输入:typeof1输出:"number" C. 输入:typeof[{x:1}]输出:"array" D. 输入:typeofNaN输出:"number" 复制...

Y0admin的博客 1484

js中 type of 的用法(详细)

js是一门弱语言,它在声明变量时无需确定变量的类型,js在运行时会自动判断。那么如何判断一个变量的类型呢,js提供了typeof运算符,用来检测一个变量的类型。 1. typeof的语法: typeof是一个运算符,有2种使用方式:typeof(表达式)和typeof 变量名,第一种是对表达式做运算,第二种是对变量做运算。 2. typeof的返回值: typeof运算符的返回类型为字符串,值包括如下几种: 1. 'undefined' --未定义的变量或值 .

小柠檬爱编程 5万+

从API到多卡部署:GLM-5.3-Flash大模型生产环境落地全攻略

大模型部署是当前AI工程化落地的核心环节,无论是API调用、单机推理还是多卡分布式服务,都需要深入理解模型架构与显存管理原理。以MoE混合专家架构为例,其推理时虽仅激活部分专家,但权重必须完整驻留显存,这对KV Cache和算力规划提出了更高要求。vLLM作为生产级推理引擎,通过张量并行与连续批处理显著提升吞吐,而INT4量化等压缩技术则有效降低硬件门槛。从在线API快速验证到单机异构部署,再到8卡A100多卡生产服务,不同场景需权衡延迟、成本与稳定性。GLM-5.3-Flash凭借1M超长上下文和高性价比

WGH100817的博客 636

typeof的语法和使用

typeof的语法和使用

Binglianxiaojiao的博客 2万+

Win11上从零跑通Carla自动驾驶仿真:保姆级环境配置与避坑指南(Python 3.7+)

本文详细介绍了在Win11系统上从零配置Carla自动驾驶仿真环境的完整流程,包括Python 3.7+环境搭建、依赖安装、常见问题排查及性能优化技巧。通过保姆级教程帮助开发者快速避坑,实现稳定的自动驾驶仿真测试环境部署。

weixin_33488239的博客 421

基于STM32与SimpleFOC实现直流无刷电机开环控制的实战指南

本文提供了一份基于STM32微控制器与SimpleFOC开源库实现直流无刷电机开环控制的详细实战指南。内容涵盖硬件连接、PlatformIO环境搭建、核心代码解析及上电测试,旨在帮助开发者快速验证硬件并理解开环控制的基本原理,为后续实现高性能的闭环FOC控制奠定基础。

xxx12的博客 963

js中typeof用法详细介绍,javascript中的typeof

大家好,本文将围绕js中typeof用法详细介绍展开说明,javascript中的typeof是一个很多人都想弄明白的事情,想搞清楚javascript typescript需要先了解以下几个事情。“type=“text/java””通常与标签配合使用,用于表示文本是属于java脚本;标签的type属性用于设置脚本的MIME类型,将类型设置为java脚本语言用于脚本的执行。java是告诉浏览器里面的文本是属于java脚本。必需的 type 属性规定脚本的 MIME 类型。之间的是文本类型(text)。

阿发狗伪原创 216

基于YOLO11的垃圾分类AI模型训练实战

通过这次实战,我们成功训练出了一个高性能的垃圾分类AI模型。项目展示了从数据准备、模型训练到结果分析的完整流程,为AI在环保领域的应用提供了有价值的参考。项目文件结构│ ├── best.pt # 最佳模型权重│ └── last.pt # 最新模型权重├── results.csv # 详细训练数据├── results.png # 训练曲线图├── confusion_matrix.png # 混淆矩阵└── args.yaml # 训练参数配置。

lydz1的博客 1661

JS学习笔记——JavaScript中常用的typeof、instanceof和Object.prototype.toString()等方法基础介绍

今天浏览博客时,看到一篇JS中对类型判断讲解的文章,感觉写的听好,正好平时在工作中也经常遇到判断类型的情况,所以就想记录一下。 1、typeof 众所周知,js是一门弱语言,它在声明变量时无需确定变量的类型,js在运行时会自动判断。那么如何判断一个变量的类型呢,js提供了typeof运算符。 1.1、typeof的作用 typeof运算符:是用来检测一个变量的类型, 把类型信息当作字符串返回,值包括如下6种: undefined:表示未定义的变量或值 boolean:表示布尔类型的变量或值 string:

MRlaochen的博客 790

STM32 FMC驱动AD7606实战:从硬件连接到时序调试全流程解析

本文详细解析了STM32 FMC驱动AD7606的全流程,包括硬件连接、FMC接口配置、驱动程序设计和时序调试。通过实战案例,展示了如何利用STM32的FMC总线实现与AD7606的高效数据传输,特别强调了电源设计、信号连接和PCB布局等关键要点,为嵌入式数据采集系统开发提供了实用指导。

aa123的博客 1007

[信号与系统]一阶与二阶连续时间系统和离散时间系统

定义:一阶连续时间系统由一阶线性常系数微分方程描述: dy(t)dt+ay(t)=bx(t) \frac{dy(t)}{dt} + a y(t) = b x(t) dtdy(t)​+ay(t)=bx(t)时间常数:时间常数 τ=1a\tau = \frac{1}{a}τ=a1​ 是系统响应速度的衡量指标。时间常数越小,系统响应越快。冲激响应:一阶系统的冲激响应是指数衰减或增长的形式。例如,对于一个单位冲激输入,响应为: h(t)=bae−at h(t) = \frac{b}{a} e^{-at} h(t)=

Andius的博客 2122

js中typeof和instanceof介绍

typeof把类型信息当作字符串返回。返回值有:"number","string","boolean","object","function"和"undefined".可以使用typeof获取一个变量是否存在,如if(typeof(str) !="undefined"){},不要去使用if(a),a未声明会出错,对于Array,Null等特殊对象使用typeof一律返回object,这是...

dibo1128的博客 110

微信小程序:errno: 1500104, errCode: 10008, errMsg: “writeBLECharacteristicValue:fail:system error, status

微信小程序errno: 1500104, errCode: 10008, errMsg: "writeBLECharacteristicValue:fail:system error, status: UNKNOWN (239)"微信小程序调用蓝牙API,wx.writeBLECharacteristicValue()报错,微信小程序蓝牙写入错误,在开发uniapp微信小程序蓝牙通信功能时报错,蓝牙开发设备控制核心api,微信小程序调用蓝牙API “wx.writeBLECharacteristicValu

✅ 精选推荐文章 3932

JavaScript中typeof和instanceof的介绍

typeoftypeof操作符返回一个字符串,指示未经计算的操作数的类型。typeof operationoperation是一个表达式,表示对象或原始值,其类型将被返回。 对应不同的数据类型可能的返回值有:String ==> string Undefined ==> undefined Number ==> number Boolean ==> boolean Null ==> object

左岸 407

手把手教你学simulink--永磁同步电机场景实例:使用Simulink进行PMSM的矢量控制仿真

矢量控制的重要性提高效率:通过精确控制磁场方向,可以优化电机的工作状态,减少损耗。增强动态性能:矢量控制能够快速响应负载变化,提供更好的调速性能。简化设计:将复杂的交流电机控制问题转化为类似直流电机的控制问题,便于设计和实现。通过上述步骤,我们简要介绍了如何基于Simulink实现PMSM的矢量控制仿真。

MHD0815的博客 421

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

json java typeof_json,js中typeof用法详细介绍及NaN、 null 及 undefined 的区别

JSON.parse(jsonstr); //可以将json字符串转换成json对象JSON.stringify(jsonobj); //可以将json对象转换成json对符串在js使用中的一个函数typeof用法, typeof 运算符把类型信息当作字符串返回,包括有大家常有变量类型。typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: “number,” “strin...

weixin_39732506的博客 315

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

javascript typeof的用法与typeof运算符介绍

经常会在js里用到数组,比如 多个名字相同的input, 若是动态生成的, 提交时就需要判断其是否是数组.  if(document.mylist.length != "undefined" ) {} 这个用法有误.  正确的是 if( typeof(document.mylist.length) != "undefined" ) {}  或 if( !isNaN(document.myli

qq_32445689的博客 437

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

在JavaScript中typeof的用途介绍

JavaScript 中的 typeof 其实非常复杂,它可以用来做很多事情,但同时也有很多怪异的表现。 本文列举出了它的多个用法,而且还指出了存在的问题以及解决办法。 阅读本文的前提是,你现在应该已经知道原始值和对象值的区别了。 检查一个变量是否存在,是否有值 typeof在两种情况下会返回 "undefined": 1.变量没有被声明 2.变量的值是 undef

m0_38035006的博客 490

关于javascript中的typeof和instanceof介绍

typeof用来检测给定变量的数据类型(也可叫做基本类型,基本数据类型。包含undefined、boolean、string、number、object、function) var message = "so easy"; alert(typeof message); //"string" alert(typeof 12); //"number" 可以这样记忆:typeof是用来判断不是用new...

weixin_30740581的博客 67
上一篇: MySQL查询优化:LIMIT 1避免全表扫描
下一篇: event 和 window.event
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值