LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

8 个必知必会的 JavaScript 面试问题(附解释)

admin
2024年10月13日 22:25 本文热度 120

有些JavaScript面试题可能令人望而生畏,在今天的文中,我们将分享一些棘手而基本的 JavaScript 面试题,通过这些面试题,从而帮助您理解这些概念,助您在面试中脱颖而出,还能加深您对的 JavaScript 知识的理解。

现在,让我们直接进入正题!

01.以下代码的输出是什么?

console.log(1 + "2" + "2");console.log(1 + +"2" + "2");console.log(1 + -"1" + "2");console.log(+"1" + "1" + "2");console.log("A" - "B" + "2");console.log("A" - "B" + 2);

解释:

  • “122” — 数字和字符串之间的 + 运算符将数字转换为字符串。因此,它类似于“1”+“2”+“2”。

  • “32” — 一元 + 运算符将“2”转换为数字。因此,1 + 2 = 3,而“3”+“2”得出“32”。

  • “02” — 一元 - 将“1”变成 -1,使 1 + (-1) = 0,然后“0”+“2”得出“02”。

  • “112” — 第一个 +“1”将字符串“1”转换为数字,但随后将其与“1”和“2”连接起来,得到“112”。

  • “NaN2” — “A”-“B”得出 NaN(非数字),然后将其与“2”连接起来,因此得到“NaN2”。

  • NaN — 与上文相同,但这次“NaN”+2 被视为数学运算,因此您只会得到 NaN。

关键要点:JavaScript 类型强制转换功能强大,但可能很棘手!+ 运算符的行为根据处理的是字符串还是数字而有所不同。

02.这个输出是什么?

console.log(typeof typeof 1);

解释:

输出为“string”。

原因如下:

typeof 1 给出“number”。

typeof“number”是“string”,因为 typeof 总是返回字符串。

关键要点:typeof 运算符总是返回字符串,即使您正在检查另一个 typeof 操作的类型!

03.这个表达式的结果是什么?

console.log([] + []);

解释:

输出为空字符串“”。

原因如下:

使用 + 运算符时,JavaScript 会尝试将数组转换为字符串。

[].toString() 给出一个空字符串。

因此,这就像执行“”+“”,结果为空字符串。

关键要点:使用 + 运算符时,JavaScript 中的数组会转换为字符串。

04.将会记录什么?

console.log(true + false);console.log(true + true);

解释:

1 — 在 JavaScript 中,true 被视为 1,false 被视为 0。因此,true + false 变为 1 + 0 = 1。

2 — 两个 true 值都被视为 1,因此就是 1 + 1 = 2。

关键要点:JavaScript 在数学表达式中使用时会将布尔值转换为数字 — true 变为 1,false 变为 0。

05.输出是什么?

let a = {}, b = {key: 'b'}, c = {key: 'c'};a[b] = 123;a[c] = 456;console.log(a[b]);

解释:

输出为 456。

原因如下:

JavaScript 将对象键转换为字符串。

b 和 c 都转换为字符串“[object Object]”,因此它们被视为同一个键。

最后一个赋值 (a[c] = 456) 覆盖了 a[b] 的值。

关键要点:当使用对象作为键时,JavaScript 会将它们转换为字符串,因此在使用对象键时要小心!

06.记录了什么?

console.log(1 < 2 < 3);console.log(3 > 2 > 1);

解释:

true — JavaScript 从左到右进行求值。首先,1 < 2 为 true,然后将其强制转换为 1。因此,1 < 3 为 true。

false — 类似地,3 > 2 为 true(或 1),但 1 > 1 为 false。

关键要点:注意 JavaScript 如何处理链式比较 — 它并不总是按您期望的方式工作。

07.结果如何?

console.log(0.1 + 0.2 === 0.3);

解释:

结果为假!这是由于 JavaScript 中浮点数的表示方式造成的。0.1 + 0.2 的结果不是 0.3,而是 0.30000000000000004。

要点:JavaScript 中的浮点精度有限,因此相等比较有时会产生意外结果。

08.输出是什么?

console.log([1, 2, 3] + [4, 5, 6]);

解释:

输出为“1,2,34,5,6”。

原因如下:

+ 运算符触发两个数组上的 toString() 方法。

[1, 2, 3].toString() 的结果为“1,2,3”。

[4, 5, 6].toString() 的结果为“4,5,6”。

这些字符串连接在一起,因此得到“1,2,34,5,6”。

关键要点:在数组上使用 + 运算符时,JavaScript 会将它们转换为字符串并连接起来。

最后的想法

面试题可能很棘手,尤其是当它们关注 JavaScript 怪癖时,例如类型强制、浮点运算和对象处理。

但有了这些示例和解释,您应该可以更好地准备自信地面对这些棘手的 JavaScript 问题。

最后,感谢你的阅读,祝编程愉快!


该文章在 2024/10/14 11:19:21 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved