🔥 遇到拒绝前请先回答10个javaScript问题❌
这里有 10 个令人困惑的问题,每个问题都附有一段代码。为了增强您的学习体验,答案隐藏在 `{% 详细信息 💣 显示 %}` 标签中 — 单击“显示”即可发现它们。让我们开始吧!🚀
每答对一题可得 10 分。你的分数是多少?👀
评论下来。
1. 以下代码的输出是什么?
console.log(0.1 + 0.2 === 0.3);
揭示
这是由于 JavaScript 中的浮点精度错误造成的。表达式 `` 导致 ``,它并不严格等于 ``。
2. 以下代码输出什么?
(function() { var a = b = 5; })(); console.log(b);
揭示
在此代码中,`` 被分配到全局范围,因为 `` 仅适用于 ``。因此, `` 成为一个全局变量,可在函数外部访问。
3. 这段代码的输出是什么?
console.log(typeof null);
揭示
这是 JavaScript 中一个众所周知的错误。`` 运算符对 `` 返回 ``,尽管 `` 实际上不是一个对象。
4. 以下代码打印什么?
console.log([] + []); console.log([] + {}); console.log({} + []); console.log({} + {});
揭示
这些结果是由于类型强制和 JavaScript 处理不同类型的加法运算符的方式造成的。
5. 以下代码的输出是什么?
console.log(1 < 2 < 3); console.log(3 > 2 > 1);
揭示
第一个表达式的计算结果为 ``,因为 `` 是 ``,并且 `` 也是 ``。第二个表达式的计算结果为 ``,因为 `` 是 ``,并且 `` 是 ``。
6. 以下代码输出什么?
console.log(typeof NaN);
揭示
在 JavaScript 中,“(非数字)”被视为数字类型。
7. 这段代码的输出是什么?
let a = [1, 2, 3]; let b = [1, 2, 3]; console.log(a == b); console.log(a === b);
揭示
在 JavaScript 中,数组是通过引用而不是值进行比较的。由于 `` 和 `` 是内存中的两个不同对象,因此两次比较都会返回 ``。
8. 下面的代码打印什么?
console.log('5' - 3); console.log('5' + 3);
揭示
减法运算符将字符串 `` 转换为数字,结果为 ``。加法运算符将字符串 `` 和数字 `` 连接起来,结果为 ``。
9. 以下代码的输出是什么?
console.log(0 == false); console.log(0 === false);
揭示
`` 运算符执行类型强制转换,因此 `` 被认为等于 ``。`` 运算符检查值和类型,因此 `` 和 `` 并不严格相等。
10. 以下代码输出什么?
(function() { console.log(1); setTimeout(function(){ console.log(2) }, 1000); setTimeout(function(){ console.log(3) }, 0); console.log(4); })();
揭示
代码立即记录“和”。带有“延迟”的“被放置在事件队列中,并在清除当前堆栈后执行,因此接下来记录“。最后,带有“毫秒延迟”的“记录”。
这些问题深入探讨了 JavaScript 的怪癖和常见陷阱。了解它们将提高您的解决问题的能力,并为您准备技术面试。祝您编码愉快!🎉
如需更深入地了解 JavaScript 面试问题,请查看此综合资源。
对于类似 JavaScript 面试问题的直观演示,你可能会发现这个视频很有帮助:
你必须知道的 10 个 JavaScript 面试问题