首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

typeof 90/'hi‘是NaN,而typeof (90/'hi')是数字。为什么呢?

typeof 90/'hi'是NaN,而typeof (90/'hi')是数字的原因是由于JavaScript的数据类型和运算规则。

首先,typeof是一个运算符,用于检查一个值的数据类型。当typeof被用于表达式时,它返回一个表示该值的数据类型的字符串。

在JavaScript中,除法运算符(/)用于计算两个数的商。如果除数或被除数是非数值类型,则会尝试将其转换为数值类型进行计算。如果转换失败,结果就会是NaN(Not a Number)。

对于表达式90/'hi'来说,90是一个数值,但'hi'是一个字符串。由于字符串不能转换为数值,所以除法运算无法进行,结果就会是NaN。

而typeof NaN的结果是"number"。这是因为NaN在JavaScript中被视为一个特殊的数值类型,表示不是一个有效的数值。虽然NaN表示的是一个不确定的数值,但它本身的数据类型仍然被归类为"number"。

因此,typeof (90/'hi')的结果是"number",表示该表达式的结果是一个数值(NaN),而不是一个字符串。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaScript(二)

typeof 操作符 由于 ECAMScript 松散类型,因此需要一种手段来检测变量的数据类型 —— typeof 操作符。...“object”: 如果这个值对象或 null “function”: 如果这个值函数 注意: typeof 一个操作符不是函数,因此可以省略括号。...NaN 如果字符串,则遵循下面规则: 如果字符串只包含数字(包括正负号),则将其转换为十进制数值(忽略前导 0) 如果字符串中包含有效的浮点数格式,则将其转换为对应的浮点数值(忽略前导 0) 如果字符串中包含有效的十六进制格式...如果第一个字符不是数字字符或正负号,会返回 NaN(即转换空字符串会返回 NaN) 如果第一个字符数字字符,则会继续解析下一个字符,直到解析完所有字符或者遇到一个非数值字符。...parseInt('AF', 16); //175 与 parseInt 类似,parseFloat 函数,不同之处在于,他会解析到遇见一个无效的浮点数字符为止,即字符串中的第一个小数点有效的,第二个就无效了

53720

【译】为什么React元素里拥有$$typeof属性?

你可能以为你在编写的JSX: hi 但是实际上,你调用的一个函数。...、key、ref属性很熟悉,但是,什么typeof属性?...为什么他的属性一个Symbol值? 这是另一件你使用React时不需要知道的事情,但是当你知道了你会收获良多。这些也是一些你可能想知道的安全相关的贴士。...相同的,即使页面上有多个React副本,它们仍然可以“同意”有效的$ typeof值。 那些不支持Symbols特性的浏览器? 唉,他们将不会受到这种额外的保护。...React仍然在元素上包含$typeof字段以保持一致性,但它将被设置为一个数字 ---- 0xeac7。 为什么会是这个数字?因为0xeac7看起来有点像“React”。。。

76310
  • 为什么react元素有个$$typeof 属性

    但是$$typeof是什么?为什么会有个Symbol作为值? 这个也是你在写react的时候不需要知道的一件事,但是如果你知道了,那感觉会很棒。在这篇文章中还有一些你可能想知道的安全性的提示。...这就是为什么像React这样的现代库在默认的情况下为字符串转义文本内容的原因: {message.text} 如果message.text带有或其他的标签,则它不会变成真正的标签...'hi', }, key: null, ref: null, $$typeof: Symbol.for('react.element'), } 这是有效的,因为你不能只把Symbol放在....$$ typeof,如果元素丢失或无效,将拒绝处理该元素。 并且使用Symbol.for的好处符号在iframe和worker等环境之间全局的。...那些不支持Symbols的浏览器? 好吧,他们没有得到这种额外的保护。 React仍然在元素上包含$$ typeof字段以保持一致性,但它设置为一个数字 - 0xeac7。 为什么个具体的号码?

    1.8K30

    Javascript:Javascript数据类型详解

    1、typeof操作符   首先要介绍的typeof操作符,因为ECMAScript松散类型的,所以需要一种方式来检测给定变量的数据类型,就是typeof了。...null "function"——如果这个值函数   下面几个使用typeof操作符的例子: var typeText = "Javascript"; alert(typeof typeText);...这两个值区分大小写的,并且这两个值与数字值1和0两回事。   ...Javascript中最基本的数值字面值格式十进制整数,除此之外整数还可以通过八进制(八进制字面值第一位为0,后面0~7的八进制数字序列)、十六进制(前两位为0x,后跟任何十六位数字,0~9,及A~...像 String.toUpperCase() 这样的方法,返回的全新的字符串,不是修改原始字符串。

    79820

    JavaScript 新手的踩坑日记

    false,0,NaN,undefined,null,' ' ,都是false。 typeof 运算符能区分原始值和对象,并检测出原始值的类型。...对象的标识000,而为了表现 null ,引擎使用了机器语言 NULL 的指针,该字符的所有位都是0。 typeof 就是检测值的标志位,这就是为什么它会认为 null 一个对象了。...typeof NaN <"number"复制代码 (吐槽:NaN “ not a number ”的缩写,但是它却是一个数字NaN JS 中唯一一个不能自身严格相等的值: NaN === NaN...[ NaN ].indexOf( NaN ) <-1复制代码 正确的姿势有两种: 第一种: function realIsNaN( value ){ return typeof value ===...Set 、Map、WeakSet、WeakMap 数据结构 特点 Set 类似于数组,但是成员值唯一,注意(这里一个例外),这里 NaN 等于自身 WeakSet 成员只能对象,不能其他类型的值

    59720

    JavaScript 新手的踩坑日记

    false,0,NaN,undefined,null,' ' ,都是false。 typeof 运算符能区分原始值和对象,并检测出原始值的类型。...对象的标识000,而为了表现 null ,引擎使用了机器语言 NULL 的指针,该字符的所有位都是0。 typeof 就是检测值的标志位,这就是为什么它会认为 null 一个对象了。...typeof NaN <"number" (吐槽:NaN “ not a number ”的缩写,但是它却是一个数字NaN JS 中唯一一个不能自身严格相等的值: NaN === NaN <...[ NaN ].indexOf( NaN ) <-1 正确的姿势有两种: 第一种: function realIsNaN( value ){ return typeof value === 'number...Set 、Map、WeakSet、WeakMap 数据结构 特点 Set 类似于数组,但是成员值唯一,注意(这里一个例外),这里 NaN 等于自身 WeakSet 成员只能对象,不能其他类型的值

    12810

    为了面试能通过,我要看完这75道面试题(下)

    什么NaN? 以及如何检查值是否为 NaN? 57. 如何判断值是否为数组? 58. 如何在不使用%模运算符的情况下检查一个数字是否偶数? 59. 如何检查对象中是否存在某个属性? 60....什么缓存及它有什么作用? 68. 手动实现缓存方法 69. 为什么typeof null返回 object? 如何检查一个值是否为 null? 70. new 关键字有什么作用? 71....什么NaN? 以及如何检查值是否为NaNNaN表示“非数字 JS 中的一个值,该值数字转换或执行为非数字值的运算结果,因此结果为NaN。...; // "Hi, 我前端小智" 使用 Object.create 方法: const n = { greeting() { return `Hi, 我${this.name}`;...为什么typeof null 返回 object? 如何检查一个值是否为 null? typeof null == 'object'总是返回true,因为这是自 JS 诞生以来null的实现。

    2.4K10

    那些年遇到的刁钻JavaScript面试题(可防踩坑)

    第 2 题:console.log(2 - '2') 答案:0 解析: 和 + 不同,- 没有操作字符串只有 “减法” 的功能,当 - 两边有非数字时会先把其转换成数字再相减。...所以,本题中的 '2' 先被转成数字 2,最终 2 - 2 等于 0。当操作数没法转换成数字时则会导致结果为 NaN,比如 'foo' - 2 = NaN。 *、/、% 的行为也和 - 类似。...第 4 题:console.log(NaN === NaN) 答案:false 解析: NaN 表示一个不为数字的值(Not a number)。...我们只需要记住:NaN和所有值都不等,包括它自己,不管用 == 还是 === 判断!判断一个值是否为 NaN 只能用 isNaN() 或者 Number.isNaN()。...本题代码等价于: function(){ console.log('hi'); } () 所以报语法错误,正确的 IIFE 语法应该是 (function(){...})()。

    66320

    看完这几道 JavaScript 面试题,让你与考官对答如流(下)

    什么NaN? 以及如何检查值是否为 NaN? 57. 如何判断值是否为数组? 58. 如何在不使用%模运算符的情况下检查一个数字是否偶数? 59. 如何检查对象中是否存在某个属性? 60....什么缓存及它有什么作用? 68. 手动实现缓存方法 69. 为什么typeof null返回 object? 如何检查一个值是否为 null? 70. new 关键字有什么作用? 71....什么NaN? 以及如何检查值是否为NaNNaN表示“非数字 JS 中的一个值,该值数字转换或执行为非数字值的运算结果,因此结果为NaN。...; // "Hi, 我前端小智" 使用 Object.create 方法: const n = { greeting() { return `Hi, 我${this.name}`;...为什么typeof null 返回 object? 如何检查一个值是否为 null? typeof null == 'object'总是返回true,因为这是自 JS 诞生以来null的实现。

    2K10

    JavaScript系列之JS数据类型,6大基本数据类型

    本文3777字,阅读约需7分钟 Hi,大家好,我CoCo。上一篇JS系列文章:JavaScript系列之JS基本语法,了解JS语法,包括注释、执行顺序、常量/变量、标识符/关键词/保留字等。...一 字符串(String) 1 简介 字符串(String)存储字符的变量,由Unicode字符、数字、标点符号等组成的序列,字符串可以是引号中的任意文本,可以使用单引号''或双引号""。...-- NAN --> a="coco" * "ITester" console.log(a); //NaN console.log(typeof a); //NaN...var a=null; console.log(typeof a); //object 输出结果如下所示: 需要注意的,null不等同于空的字符串(" ")或0。...2 用法 对于未声明的变量,使用 typeof 操作符查看其类型会发现,未声明的变量 undefined。

    1.8K20

    《JavaScript高级程序设计(第四版)》学习笔记(二)第3章

    注意:typeof关键字,不能做函数名,Typeof可以 3.1.2 标识符 第一个字符必须一个字母,下划线_或一个美元符号$ 其他字符可以是字母,_,$,数字。...最恶心的地方就是变量提升 例如下列代码 function foo() { console.log(age); var age = 26; } foo() // undefined 初学时,可能会很疑惑,为什么没报错...分子是非 0 ,分母 0 ,则会是 infinity 注意:任何涉及 NaN 的操作都会返回 NaN,例如(NaN / 10) 但是离谱的NaN 不等于包括 NaN 在内的任何值 console.log...,则结果为NaN;否则,就会正常转换为数字类型。...parseInt()和parseFloat()的转换规则比较接近如果第一个字符是非数字,那么,结果为NaN,如果第一个字符数字: parseInt():如果遇到小数点或者其它非数字字符或结尾,

    1.1K30

    前端面试题分享001

    ,而且默认按照十进制转换,在不含数字的字符串或者转化失败时会返回NaN.那么如果针对一些数据我们第二个参数如果传入 0 1 2 3 8 10 16会返回什么?...(newArr2)//正确 传入 0 [1, 6, 67, 90, 34, NaN] 传入1 [1, NaN, NaN, NaN, NaN, NaN] 传入2 [1, NaN, NaN, NaN, NaN..., NaN] 传入9 [1, 6, 61, NaN, 31, NaN] 总结:从上述的分析可以得出其首先会过滤出数字的部分,然后针对数字的部分进行进制的转换,如果返回其进制那么进行返回,如果不是其用对应的进制可以转换的...那么在代码具体实现上其差别会是什么?...这里我们用伪代码解释下,首先两个都是用计时函数实现的,区别在于: 防抖函数会清除掉之前的计时器如果之前有,所以其触发频率会更低;节流函数判断其控制的相应时间,如果还在其时间内,那么会继续执行原来的计时器

    57340
    领券