有些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。
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.000004。
要点: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”。
Java基础运用代码
这些字符串连接在一起,因此得到“1,2,34,5,6”。
关键要点:在数组上使用 + 运算符时,JavaScript 会将它们转换为字符串并连接起来。
最后的想法
面试题可能很棘手,尤其是当它们关注 JavaScript 怪癖时,例如类型强制、浮点运算和对象处理。
但有了这些示例和解释,您应该可以更好地准备自信地面对这些棘手的 JavaScript 问题。
学习更多技能
请点击下方公众号
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/2140.html