Javascript开发

Chinese, Simplified
SEO Title
JavaScript Develop

【JavaScript 开发】2022 年 JavaScript 面试题

Chinese, Simplified

JavaScript 面试题


注意:在进行 JS 面试问题之前,请详细阅读以下 JS 主题:
- 面向对象的 JavaScript (OOP)
- JavaScript 如何在屏幕后面运行

  • 1. ES6 中有哪些新的 JS 特性?

- https://github.com/lukehoban/es6features

  • 2. JS是sync还是Async?

- JavaScript 始终是同步和单线程的。如果您在页面上执行 JavaScript 代码块,则当前不会执行该页面上的其他 JavaScript。

  • 3.JS 中的 Sync 和 Async 有什么区别?

- 异步代码在主程序流程之外获取语句,允许异步调用之后的代码立即执行而无需等待。
- 链接 — https://rowanmanning.com/posts/javascript-for-beginners-async/

  • 4.如何优化JS代码的性能?
  • 5.什么是备忘( memoization)。实现用于记忆的 JS 代码。
  • 6.什么是绑定?为绑定实现 pollyfill。
  • 7.为:map、reduce、filter、promise 编写 polyfill
  • 8.什么是纯函数?
  • 9.shim 和 polyfill 有什么区别?

- https://2ality.com/2011/12/shim-vs-polyfill.html

  • 10.什么是 IIFE(立即调用函数表达式)( (Immediately Invoked Function Expressions))?
  • 11.JavaScript 中的强制(Coercion )是什么?

- https://developer.mozilla.org/en-US/docs/Glossary/Type_coercion

  • 12.高阶函数的定义是什么?
  • 13.什么时候使用绑定功能?
  • 14.什么是柯里化(Currying)?

- https://www.tutorialspoint.com/what-is-currying-in-javascript

  • 15.你能举一个咖喱(curry )函数的例子吗?为什么这种语法有优势?
  • 16.解释 Javascript 中的提升(Hoisting )是什么?

- JavaScript 提升是指编译器在执行代码之前为变量和函数声明分配内存的过程。使用 var 进行的声明使用默认值 undefined 进行初始化。使用 let 和 const 进行的声明不会作为提升的一部分进行初始化。

  • 17.解释原型(Prototype )设计模式?
  • 18.比较 Async/Await 和 Generators 的使用以实现相同的功能?

- https://medium.com/dailyjs/a-simple-guide-to-understanding-javascript-e…

  • 19.await 关键字和 yield 关键字有什么区别?
  • 20.是否可以将 ECMAScript 6 生成器重置为其初始状态?
  • 21.如何在 JavaScript 中深度冻结(deep-freeze)对象?

我们可以使用 JavaScript 提供的 Object.freeze() 方法来防止通过更新和删除现有属性来添加新属性。
链接——https://www.geeksforgeeks.org/how-to-deep-freeze-an-object-in-javascrip…

  • 22. JavaScript 是按引用传递还是按值传递语言?

- JavaScript 总是按值传递,所以改变变量的值永远不会改变底层的原语(字符串或数字)。然而,当一个变量引用一个包含数组的对象时,该值就是对该对象的引用。
https://medium.com/nodesimplified/javascript-pass-by-value-and-pass-by-…

  • 23. 什么是 JS 中的 JIT 和事件循环?

事件循环有一项简单的工作——监控调用堆栈和回调队列。如果调用堆栈为空,事件循环将从队列中取出第一个事件并将其推送到调用堆栈,调用堆栈有效地运行它。
链接——https://blog.sessionstack.com/how-javascript-works-event-loop-and-the-r…

  • 24.JS 中的闭包是什么?

闭包是捆绑在一起(封闭)的函数与对其周围状态(词法环境)的引用的组合。换句话说,闭包让你可以从内部函数访问外部函数的作用域。在 JavaScript 中,每次创建函数时都会在创建函数时创建闭包。

Question Link — https://dev.to/levimeahan/closures-scope-and-the-settimeout-for-loop-question-5bl6

https://coderbyte.com/algorithm/3-common-javascript-closure-questions#

  • 25.使用箭头函数有什么好处?
  • 26.JS 中的数组和字符串方法及其参数?
  • 27.windows.onload 与 onDocumentReady 有什么区别?
  • 28.ForEach() 和 map() 的区别?
  • 29.JS中的回调函数是什么?
  • 30.什么是回调地狱?
  • 31.什么是承诺(promises )以及承诺(promises )如何运作?
  • 32.事件冒泡和事件捕获之间的区别?
  • 33.js中2+‘2’和2-‘2’的输出?

https://www.toptal.com/javascript/interview-questions
https://www.interviewbit.com/javascript-interview-questions/#coding-pro…

  • 34. JS中set方法和map方法的区别?

- Map 是元素的集合,其中每个元素都存储为键、值对。 Map 对象可以同时保存对象和原始值作为键或值。当我们遍历 map 对象时,它以与插入相同的顺序返回键值对
- JavaScript map set() 方法用于添加或更新元素以映射具有特定键值对的对象。每个值都必须有一个唯一的键。

  • 35. 软件开发模型——KISS、SOLID、POC、DRY、MVP 等
  • 36. 什么是 javascript 中的 debounce 和 throttling?
  • 37. JS中SetTimeout和SetInterval的区别?
  • 38、如何使用ClearInterval & ClearTimeout?
  • 39. 为什么在 JS 中引入了 let 和 const?
  • 40. NaN 和 undefined 有什么区别?
  • 41. 阅读逻辑与 (&&) 和逻辑或 (||) -> 短路评估

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND

# 请按以下顺序阅读以下主题:

  • 1.‘this’关键字

链接——https://www.w3schools.com/js/js_this.asp

  • 2. Call、Apply 和 Bind 方法及其与 ‘this’ 关键字的使用
  • 3. JS 中的闭包

闭包是函数和声明该函数的词法环境的组合。该环境由创建闭包时在范围内的任何局部变量组成。
闭包是捆绑在一起(封闭)的函数与对其周围状态(词法环境)的引用的组合。换句话说,闭包让你可以从内部函数访问外部函数的作用域。在 JavaScript 中,每次创建函数时都会在创建函数时创建闭包。
链接 — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures

  • 4. JS 中的柯里化(Currying )

https://www.tutorialspoint.com/what-is-currying-in-javascript

  • 5. 编写 sum(1)(2)(3) 和 sum(1,2,3) 的柯里化代码
  • 6. 为什么需要Bind、调用和应用?

# Devesh JS 采访资料:https://devesh-kr-sri.medium.com/javascript-3497a26e5e5a


# 重要话题:

  • 1. 高级 JavaScript 实践
  • 2. 面向对象编程
  • 3. 函数式编程
  • 4. 范围和执行上下文
  • 5. 继承+原型链
  • 6、最新特性:ES6、ES7、ES8、ES9、ES10、ES2020
  • 7. 闭包
  • 8. 异步 JavaScript + 事件循环
  • 9. JavaScript 模块
  • 10.`this`关键字
  • 11. JavaScript 引擎和运行时
  • 12. 错误处理
  • 13. 堆栈溢出
  • 14. 内存泄漏
  • 15. 组合与继承
  • 16.类型强制
  • 17. 按引用传递与按值传递
  • 18. 高阶函数
  • 19. IIFE
  • 20. .call()、.apply()、.bind()
  • 21.解释器/编译器/ JIT编译器
  • 22. 垃圾收集
  • 23. 吊装
  • 24. JavaScript 最佳实践

# 数组方法:https://www.freecodecamp.org/news/the-javascript-array-handbook/
#LinkedIn 技能评估测验 — https://github.com/Ebazhanov/linkedin-skill-assessments-quizzes

Promise Example:

function GetUserDetails() {
    return new Promise(function(resolve, reject) {
        console.log(“Fetching data, Please wait…..”);
        setTimeout(() = >{
            fetch(“https: //jsonplaceholder.typicode.com/todos/1")
            .then(response = >response.json())
            // .then(json => console.log(json))
            // .catch(error => console.log(error));
            .then(json = >resolve(json)).
            catch(error = >reject(error));
        },
        3000);
    });
}

 

原文:https://medium.com/@abhishekbhatti89/javascript-interview-questions-202…

本文:https://jiagoushi.pro/node/1878

SEO Title
JavaScript Interview Questions 2022

【JavaScript开发】每个 Web 开发人员都应该知道的 12 个重要的 JavaScript 函数

Chinese, Simplified

在本文中,我将为每个 Web 开发人员展示 12 个重要的 JavaScript 函数。 您在这里学到的一切都将加速您的开发并节省您宝贵的时间!


1.缩短控制台日志


您是否厌倦了在代码中一次又一次地编写 console.log() ? 这个简单的脚本使用 bind 来缩短控制台日志以加快开发过程(这可以通过每个函数来完成)。

2.将两个数组合并为一个


如果要将两个任意大小的数组合并为一个数组,可以使用 concate JavaScript 函数。

3. 将两个对象合并为一个


如果您使用对象,您可以使用这个简单的技巧将它们合并在一起。

4. 缩短数组


Web 开发人员有一种简单的方法来缩短数组。 您需要使用长度方法并传递一个小于实际数组大小的数字。

5. 随机排列数组
有时您希望随机化数组中的值。 为此,您可以使用带有随机 compareFunction 的 Array.sort 函数。

 

6.使用isNum验证一个数字


使用此函数,您可以检查值或变量是否为数字(int、float 等)。

7. 使用 isStr 验证字符串


使用此功能,您可以检查值或变量是否为字符串格式。

8. 使用 isNull


检查结果或数据是否为空通常很有用。

9.计算一个函数的性能
如果你想检查一个函数运行了多长时间,你可以在你的程序中使用这种方法

10.从数组中删除重复项


我们经常会遇到一个包含重复数据的数组,并使用循环来删除这些重复数据。 此功能可以在不使用循环的情况下以简单的方式删除重复项。

11. 对条件使用逻辑 AND/OR


您可以使用逻辑 AND/OR,而不是使用 if 条件。 这可以在执行命令的函数中使用

或用于赋值

12. 三元运算符


三元运算符很酷。 您可以使用三元运算符避免看起来不好的嵌套条件 if..elseif..elseif。

结语


我希望你觉得这篇文章有帮助! 如果您也有好的 JavaScript 函数可以分享,请随时在此处发表评论并与其他开发人员分享。 快乐的 JavaScript 编码。

原文:https://javascript.plainenglish.io/12-important-javascript-functions-ev…

本文:

SEO Title
12 Important JavaScript Functions Every Web Developer Should Know