400个最常见的 JavaScript 面试问答(3)
写在前面的
点击订阅专栏,即可查阅全部内容及后续更新
大家好,我是 海拥 ,专注于前端知识的分享。今天将给大家带来的是 400 个最常见的 JavaScript 面试问答第三部分。接下来我会持续更新(争取日更,也可能每周3-5篇),每小节大概 10 道题左右,总共会有 400 多道。
大家一定要记得点赞收藏呀!!!
编号 | 问题 |
---|---|
1 | 在 JavaScript 中创建对象的可行方法有哪些? |
2 | 什么是原型链? |
3 | call、apply、bind有什么区别? |
4 | 什么是 JSON 及其常见操作? |
5 | 数组slice()方法的目的是什么? |
6 | 数组splice()方法的目的是什么? |
7 | slice()和splice()有什么区别? |
8 | 你如何比较 Object 和 Map |
9 | == 和 === 运算符有什么区别? |
10 | 什么是 lambda 或 箭头函数? |
11 | 什么是头等函数? |
12 | 什么是一阶函数? |
13 | 什么是高阶函数? |
14 | 什么是一元函数? |
15 | 什么是柯里化函数? |
16 | 什么是纯函数? |
17 | let 关键字的用途是什么? |
18 | let 和 var 有什么区别? |
19 | 为什么选择 let 这个名字作为关键字? |
20 | 你如何在没有错误的情况下重新声明 switch 块中的变量? |
21 | 什么是暂时性死区? |
22 | 什么是IIFE(立即执行函数表达式)? |
23 | 使用模块有什么好处? |
24 | 什么是memoization(记忆)? |
25 | 什么是Hoisting(变量提升)? |
26 | ES6 中的类是什么? |
27 | 什么是closures(闭包)? |
28 | 什么是modules(模块)? |
29 | 为什么需要模块? |
30 | javascript中的作用域是什么? |
21.什么是暂时性死区?
暂时性死区是 JavaScript 中的一种行为,在使用 let 和 const 关键字声明变量时发生,但不使用 var 声明变量。在 ECMAScript 6 中,在其声明之前(在其范围内)访问letorconst变量会导致 ReferenceError。发生这种情况的时间跨度,即变量绑定的创建和声明之间,称为时间死区。
让我们用一个例子来看看这个行为,
function somemethod() { console.log(counter1); // undefined console.log(counter2); // ReferenceError var counter1 = 1; let counter2 = 2; }
22.什么是IIFE(立即执行函数表达式)?
IIFE(立即调用函数表达式)是一个 JavaScript 函数,它在定义后立即运行。它的签名如下,
(function () { // 在这里写逻辑 } ) ();
使用 IIFE 的主要原因是为了获得数据隐私,因为在 IIFE 中声明的任何变量都不能被外界访问。即,如果您尝试使用 IIFE 访问变量,则会引发如下错误,
(function () { var message = "IIFE"; console.log(message); } ) (); console.log(message); //Error: message is not defined(消息未定义)
23.使用模块有什么好处?
使用模块有利于扩展有很多好处。其中一些好处是,
- 可维护性
- 可重用性
- 命名空间
24.什么是memoization(记忆)?
Memoization 是一种编程技术,它试图通过缓存先前计算的结果来提高函数的性能。每次调用 memoized
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
JavaScript 面试大全 文章被收录于专栏
在本专栏中,我们将讨论面试中经常被问到的 400 多个常见的 JavaScript 面试问题,包括各种原生 JavaScript 的难点,学成之后可以使用 JavaScript 做一些酷炫的小游戏、工具等。如果你是正在学习前端的学生,对前端感兴趣想学习 JavaScript,或者是想找前端相关的工作却从未接触过 JavaScript,一头雾水不知从何学起。你都可以订阅本专栏,这将是你的最佳入门读物