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

前端必备,25个最基本JavaScript面试问题及答案

这种行为也支持放置左括号于JavaScript代码行末尾,不是新代码行开头约定。正如这里所示,这不仅仅只是JavaScript一个风格偏好。 7. NaN 是什么?它类型是什么?...你如何可靠地测试一个是否等于 NaNNaN 属性代表一个“不是数字。...这个特殊是因为运算不能执行导致,不能执行原因要么是因为其中运算对象之一非数字(例如, "abc" / 4),要么是因为运算结果非数字(例如,除数为零)。...问题,在ECMAScript规格说明,整数只概念上存在:即,数字总是存储为浮点。...这就解释了为什么,有些令人奇怪, 1 && 2返回 2(不是你以为可能返回 true 或 1)。 20.执行下面的代码时将输出什么?请解释。

90930

37个JavaScript基本面试问题和解答(建议收藏)

这种行为也被认为遵循了在JavaScript中将一行开头大括号放在行尾约定,不是在新行开头。如此处所示,这不仅仅是JavaScript一种风格偏好。 7、什么NaN?它类型是什么?...如何可靠地测试一个是否等于NaNNaN属性表示“不是数字。这个特殊由于一个操作数是非数字(例如“abc”/ 4)或者因为操作结果是非数字而无法执行。...一方面,虽然NaN意思不是数字”,但它类型数字: console.log(typeof NaN === "number"); // logs "true" 此外,NaN相比任何事情 - 甚至本身...JavaScript数字全部用浮点精度处理,因此可能不会总是产生预期结果。“ 上面提供示例演示此问题经典案例。...例6:“A” - “B”+2输出:NaN说明:在前面的例子,“A” - “B”产生NaN。但是任何运算符应用于NaN和其他数字操作数仍然会产生NaN

2.9K10
您找到你想要的搜索结果了吗?
是的
没有找到

这 11 个前端小知识你不一定知道

但是,在第 2 行,JavaScript 将空字符串视为 0,这是一个数字,因此无法通过 NaN 测试。 第 3 行也应该清楚,因为“a”一个字符串,因此不是数字。...同样,在第 4 行,“1”一个字符串,但 JavaScript 在内部将其解析为数字 1,因此未能通过 NaN 测试。很奇怪吧?...在 JavaScript 添加浮点数行为非常奇怪。见下文。...11、typeOf 运算符 typeOf 一个一元运算符,它返回一个字符串,表示变量原始类型。我们知道 JavaScript 主要对象,所以在大多数情况下,这会返回 object 。...这里有一些奇怪例外。 typeOf NaN; // 'number' typeOf NaN 一个看起来很奇怪数字,但 NaN 从技术上讲一种数字数据类型。

94020

JavaScript真假知多少

let x; x = 1; // x一个数字 x = '1'; // x一个字符串 x = [1]; // x一个数组 当用`==`比较时候,似乎不同和true都是相等。...`,因为类型被考虑在内: // all false 1 === '1'; 1 === [1]; '1' === [1]; 在JavaScript里,会将设定为六种原始数据类型其中一种: · Undefined...仅有的一个例外`NaN`和任何都不相等 建议 通过真假判断可以了解最有经验开发人员。新手或者从其它语言转过来开发者会碰到一些问题!...幸运,在处理真假变量时候有一些简单步骤可以捕获最难发现错误。 1. 避免直接比较 当一个和true或者false相等时候,比较两个真假不是必须。...使用`===`运算符 使用全等运算符比较两个,避免类型转换问题: // 不这样写 if (x == y) // ... // 如果x和y都是真值或者都是假,执行 // 例如: x = null y

71920

20个稀奇古怪 JavaScript 表达式,你要挑战回答一下嘛

JavaScript一种非常容错编程语言,许多在其他编程语言中不合法表达式在JavaScript中都能正常工作。 这导致了很多奇怪代码。你想挑战它吗?...10, 2 逗号(,)在JavaScript也是一个合法操作符,它评估每个操作数(从左到右),并返回最后一个操作数。 因此,10,2返回2 !!"" ""一个空字符串,它是一个虚。...[]; // -> true +号会将真值转换为其数字表示: 1,所以 +!![] 返回 1。 true == "true" 双等运算符(==)检查其两个操作数是否相等,并返回一个布尔结果。...但是当除数不是0时,JavaScript认为这个表达式结果Infinity。 10**1000一个很大数字,JS 无法正确表示这个数字。(JavaScript中最高整数值2^53-1)。...实际发生情况,它试图将字符串转换为数字,但失败了。 Number("true"); // -> NaNJavaScript数字运算,只要有一个NaN,运算最终结果就一定是NaN

50020

JavaScript 编程精解 中文第三版 一、,类型和运算符

原理与十进制数字相同,但不是 10 个不同数字只有 2 个,每个数字权重从右到左增加 2 倍。...它在数学上不合理,并且很快导致我们下一个特殊数字NaNNaN代表“不是数字”,即使它是数字类型。...first line And this is the second 当然,在某些情况下,你希望字符串反斜杠只是反斜杠,不是特殊代码。...自动类型转换 在引言中,我提到 JavaScript 会尽可能接受几乎所有你给他程序,甚至那些做些奇怪事情程序。...当左侧可以被转换成false时,&&运算符返回左侧,否则返回右侧。 这两个运算符另一个重要特性,只在必要时求解其右侧部分。

1K80

20个稀奇古怪 JavaScript 表达式

已收录,有一线大厂面试完整考点、资料以及我系列文章。 JavaScript一种非常容错编程语言,许多在其他编程语言中不合法表达式在JavaScript中都能正常工作。 这导致了很多奇怪代码。...10, 2 逗号(,)在JavaScript也是一个合法操作符,它评估每个操作数(从左到右),并返回最后一个操作数。 因此,10,2返回2 !!"" ""一个空字符串,它是一个虚。...[]; // -> true +号会将真值转换为其数字表示: 1,所以 +!![] 返回 1。 true == "true" 双等运算符(==)检查其两个操作数是否相等,并返回一个布尔结果。...但是当除数不是0时,JavaScript认为这个表达式结果Infinity。 10**1000一个很大数字,JS 无法正确表示这个数字。(JavaScript中最高整数值2^53-1)。...实际发生情况,它试图将字符串转换为数字,但失败了。 Number("true"); // -> NaNJavaScript数字运算,只要有一个NaN,运算最终结果就一定是NaN

37620

typeof运算符及实现jqueryaddClass,removeClass,hasClass

Undefined类型:已经声明未赋值变量为”undefined”[实际上未声明变量用typeof检测也会返回undefined] 2....isFinite():判断是否为有限数值,如果返回true,否则返回false。 特殊数值::NaN (not a number) 即表示不是一个数字,则isNaN判断不是数字返回true。...NaN不能用于计算alert(NaN == NaN) //返回false 可用方法:isNaN(),判断是否为”不是数字”,不是数字返回true,数字返回false。 5....二、javascript typeof运算符 typeof操作符,返回“表达式”数据类型字符串。...“function” 表示这个函数 三、JavaScript实现jQueryaddClass()、removeClass()、hasClass() <pre name="code

67831

JavaScript运算符完全攻略

JavaScript 仅有一个三元运算符——条件运算符?:(if语句简化形式)。 操作数类型 运算符操作数据并不是随意,大部分都有类型限制。...console.log(true * "5"); //返回5 运算符优先级 运算符优先级决定执行运算顺序。例如,1+2*3 结果 7。不是 9,因为乘法优先级高,虽然加号位于左侧。...使用小括号可以改变运算符优先顺序。例如,(1+2)*3 结果 9,不是7。 在下面代码,第二行与第三行返回结果相同,但是它们运算顺序不同。...运算符一般不会对操作数本身产生影响。例如,a=b+c,其中操作数 b 和 c 不会因为加法运算导致自身发生变化。...如果有一个操作数不是数字,则返回 NaN。 console.log(2 - "1"); //返回1 console.log(2 - "a"); //返回NaN 使用减去 0,可以快速把转换为数字

14940

检查 JavaScript 变量是否为数字几种方式

字符串形式数字例如 "100" 不应该被处理,同时在 JavaScript NaN,Infinity 和 -Infinity 之类特殊也都是数字,不过我们将忽略这些。...使用 Number.isNaN() 函数 标准 Number 对象具有 isNaN() 方法。用来判断传入参数值是否为 NaN。由于我们要检查变量是否为数字,所以需要在检查要使用非运算符 !。...这种方法最适合在你知道自己数字并且要检查它是否为 NaN 情况下,并不适合常规数字。...它可以正确判断 null 和 undefined 不是数字。但如果 NaN 和 Infinity,它会返回 true。...尽管从技术角度上来说这是正确,但 NaN 和 Infinity 特殊数字,我们在大多数情况下都会忽略它们。 总结 本文研究了如何检查 JavaScript 变量是否为数字

2.6K41

JavaScript类型、和原生函数大揭秘, 前端开发者必看!

操作符来说,因为他们一个有效数字字符,会被优先识别为数字常量一部分,然后才是对象属性访问运算符。...属性访问运算符。只是这样看着奇怪,实际情况也很少见。在基本类型上直接调用方法并不多见,不过这并不代表不好或不对。...null: 指空 undefined:指没有NaNNaN 一个特殊,它和自身并不相等,唯一一个非自反(即 x === x 不成立), NaN != NaN 为 true。...操作符来说,因为他们一个有效数字字符,会被优先识别为数字常量一部分,然后才是对象属性访问运算符。 5. 要检测一个是否整数,可以使用 ES6 Number.isInteger(..)...NaNNaN 一个特殊,它和自身并不相等,唯一一个非自反(即 x === x 不成立), NaN != NaN 为 true。 8. 如何判断一个数是否 NaN

6110

Javascript 逻辑运算符使用技巧和其内在逻辑

对于Java等强类型语言,进行逻辑判断时,如 if(condition) condition所表示表达式,其结果必须返回为true或false表达式,javascript 则不然,它可以允许...对于若类型JavaScript语言而言,它有着不同认识角度:它认为没有被定义变量或者为null 变量,用在逻辑判断时,应该返回false;而对于存在Object对象而言,应该返回true;对于数字而言...如果大家有阅读过Javascript框架如prototype或者jquery经历,对于代码 两个!形式运算符!! 就不足为奇了。 !!...,true && object 返回第二个参数object,不是经过计算过Boolean;另外,如果第一个参数Boolean为false,其返回不是参数对应Boolean,而是参数本身...,null Boolean为false,但是result1为null,不是对应boolean

61430

千万别小看这些运算符背后逻辑

我们知道,+可以用来做数字运算,也可以用作字符串拼接,但是还有一些细节可能大家不知道。如果+运算符两个操作数类型不一致,或者说两个操作数既不是字符串也不是数字,那么它运算规则是什么?...如果其中一个操作数字符串,另一个操作数也会被转为字符串,+运算符执行字符串拼接操作。 如果两个操作数都不是字符串或对象,则会进行算术加法运算(非数字操作数会被强制转为数字)。...对于字符串比较情况,如果两个字符串第一个字符相同,则会比较第二个字符,以此类推。 这里有一个比较特殊NaN,它与任何做比较都会返回false。...2147483648在32位带符号正数无法表示,其已经溢出了。 ?...计算机只理解二进制,与人类所理解十进制之间永远存在一个精度问题,需要足够精度才能更加准确地表示十进制,计算机位数永远都是有限,这就是矛盾存在地方,所以会出现溢出这种现象。

72530

JavaScript数字(数值)

JavaScript 程序,直接输入任何数字都被视为数值直接量。 示例1 数值直接量可以细分为整型直接量和浮点型直接量。浮点数就是带有小数点数值,整数不带小数点数值。...var float = 1.2e3; 其中 e (或 E)表示底数,其为 10, e 后面跟随 10 指数。指数一个整型数值,可以取正负值。...表示正无穷大数值 Number.NEGATIVE_INFINITY 表示负无穷大数值 NaN NaN(Not a Number,非数字在 IEEE 754 定义一个特殊数值。...+ '0' //0 + 'oops' //NaNNaN 参与数学运算时,运算结果也是 NaN。因此,如果表达式运算为 NaN,那么可以推断其中至少一个运算数 NaN。...示例 isFinite() 会试图把检测到转换为一个数字。如果不是一个数字,那么使用 isFinite() 直接检测就不是有效方法。

15520

数据类型、运算符、流程控制语句

32位,其中最低3位用来表述数据类型,object对应000。...JavaScript 之中,只要是对象,就有对应构造函数。因此,instanceof运算符一个用处,判断类型。...(1)含义 NaN JavaScript 特殊,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错场合。...某些不是数值会直接转换为数值,例如"10"和"Boolean"。任何不能被转换为数值都会导致这个函数返回true。...==与===有什么区别 历史背景 确定两个变量是否相等编程一个非常重要操作。在比较字符串、数值和布尔相等性时,问题还比较简单。但在涉及到对象比较时,问题就变得复杂了。

2.2K40
领券