目录[隐藏][展示]
- 1. JavaScript 对你意味着什么?
- 2. 说出 JavaScript 开发的两种基本编程范式。
- 3. JavaScript 与 Java 的区别是什么?
- 4. JavaScript 支持哪些形式的数据?
- 5. JavaScript 具备哪些特质?
- 6. 使用 JavaScript 的缺点是什么?
- 7. JavaScript 如何让你构建一个对象?
- 8. 在 JavaScript 中,如何构造数组?
- 9. 如何在 JavaScript 中定义名称函数,它是什么?
- 10. 在 JavaScript 中,描述提升。
- 11. 变量的 JavaScript 作用域是什么?
- 12. ASP 脚本和 JavaScript 哪个更快?
- 13. 描述原型继承与经典继承有何不同。
- 14. 编写将动态添加新组件的程序。
- 15.回调:是什么?
- 16. 如何调试 JavaScript 程序?
- 17. 关闭:它是什么? 举例说明。
- 18. 在 HTML 文件中包含 JavaScript 代码有哪些方法?
- 19. JavaScript 中的定时器是如何工作的?
- 20.您对cookies有什么看法?
- 21. 如何制作饼干?
- 22. JavaScript 变量命名约定是什么?
- 23. let 和 var 有什么不同?
- 24. 为什么会存在自调用函数?
- 25. 属性与属性的区别是什么?
- 26. 在 JavaScript 中,箭头函数有什么作用?
- 27. 什么是打字语言?
- 28. 在 JavaScript 中,请描述负无穷。
- 29. undefined 和 null 有什么区别?
- 30. 编写一些 JavaScript 代码来展示如何获取元素的内部 HTML。
- 31. 有哪些 JavaScript 框架?
- 32. 在 JavaScript 中,什么是事件冒泡?
- 33. JavaScript memoization 是什么意思?
- 34. 进出口是什么意思?
- 35. 什么是 JavaScript 的“严格”模式,它是如何激活的?
- 36. 操作符instanceof是做什么的?
- 37、在JavaScript中,提示框是什么意思?
- 38. 在 JavaScript 中,生成器有什么作用?
- 39. BOM:它是什么?
- 40. 延迟脚本:它们在 JavaScript 中提供什么功能?
- 结论
JavaScript 是一种免费的开源编程语言。 它旨在用于创建基于 Web 的应用程序。 它是轻量级和可解释的,这使得它比其他语言快得多。
在中使用 JavaScript 更容易 网络应用 因为它的 HTML 集成。 要确定它的重要性,请在浏览器中禁用 JavaScript 并尝试加载页面。
这些网站将无法正常运行。 他们的内容经常表现不佳。 几乎所有现代浏览器都混合了 HTML、CSS 和 JavaScript。
JavaScript 是解释型之一 编程语言. 许多浏览器中已经包含解释器,包括 Google Chrome、Microsoft Internet Explorer 等。
因此,它的代码可以被浏览器的 JavaScript 引擎处理。 这里有一个初学者到专家级的JS面试问题和答案,供你准备面试时参考。
相同的目的是向您介绍您在技术面试中可能遇到的问题类型。 让我们开始。
1. JavaScript 对你意味着什么?
用于客户端和服务器端编程的最常用的 Web 脚本语言是 JavaScript。 JavaScript 代码可以放入 Web 浏览器可以理解和执行的 HTML 页面中,支持 面向对象的编程.
2. 说出 JavaScript 开发的两种基本编程范式。
使用多范式语言 JavaScript 进行编程允许:
- 程序/命令式编程
- 面向对象编程 (OOP)
- 使用函数式编程
- 基于原型的编程方法或基于原型的继承(OOP 的扩展)
3. JavaScript 与 Java 的区别是什么?
虽然 JavaScript 主要是一种脚本语言,但 Java 是一种编程语言。 Java 是开发人员用来创建可在计算机操作系统、虚拟机或 Web 浏览器上运行的程序的编程语言。 相比之下,JS 代码被设计为只能在浏览器中运行。
但是利用 Electron 和 Node.js,可以在 JavaScript 中创建独立的桌面应用程序。 Java 和 JS 代码的显着区别在于后者以文本格式提供,而前者需要编译。
4. JavaScript 支持哪些形式的数据?
JavaScript 支持的数据类型包括:
- 串
- 图形符号
- 联系电话
- 摆件
- 未定义
- 空
- 布尔
5. JavaScript 具备哪些特质?
它是一种免费且通用的脚本语言。
它是一种轻量级的解释型编程语言。
它旨在用于构建以网络为中心的应用程序。
两者都与 Java 有联系和互补。
6. 使用 JavaScript 的缺点是什么?
有经验的编码人员除了赞美其优点外,还能够讨论他们首选语言的缺点。 安全性是 JavaScript 最严重的缺陷。 寻求有关如何滥用它的信息。
JavaScript 的另一个缺点是它的广泛使用和适应性,这可能是一把双刃剑,因为它为可能导致各种系统性能不均的编程怪异留下了很多余地。
7. JavaScript 如何让你构建一个对象?
JavaScript 很好地支持对象的概念。 使用对象字面量,您可以构建如下所示的对象:
8. 在 JavaScript 中,如何构造数组?
数组字面量可用于定义数组,如下所示:
9. 如何在 JavaScript 中定义名称函数,它是什么?
定义命名函数时,它会立即定义一个名称。 使用function关键字可以描述如下:
10. 在 JavaScript 中,描述提升。
在 JavaScript 中,默认情况下所有变量和函数声明都移到顶部,这称为提升。 这意味着所有变量和函数,无论它们在哪里定义,都被重新定位到范围的顶部。 范围可能是本地的或国际的。
11. 变量的 JavaScript 作用域是什么?
定义变量的程序部分是变量的范围。 JavaScript 变量只能有两个作用域。
- 全局变量:JavaScript 代码中的任何地方都可以看到一个全局变量,因为它具有全局范围。
- 局部变量:只有在声明它的函数内,局部变量才可见。 对于该函数来说,函数参数总是存在的。
12. ASP 脚本和 JavaScript 哪个更快?
更快的是 JavaScript。 JavaScript 可以在没有 Web 服务器帮助的情况下执行,因为它是一种客户端语言。 但是,由于 ASP 是一种服务器端语言,它总是比 JavaScript 慢。 目前,JavaScript 也是一种服务器端语言(nodejs)。
13. 描述原型继承与经典继承有何不同。
JavaScript 具有消除传统继承的严格限制并允许对象从其他对象继承属性的奇妙能力。 –
- 经典继承:在“new”关键字的帮助下,构造函数创建一个实例。 父类的属性被传递给这个新实例。
- 原型继承:复制充当原型的现有对象以生成实例。 对于这个实例,从各种各样的对象中选择性继承可能是有利的,它经常通过工厂函数或“Object.create()”创建。
14. 编写将动态添加新组件的程序。
15.回调:是什么?
作为方法的参数或选项发送的简单 JavaScript 函数称为回调。 术语“回调”是指旨在在完成另一个功能之后执行的功能。 函数是 JavaScript 中的对象。 JavaScript 对象是函数。 因此,函数可以返回其他函数并接收其他函数作为输入。
16. 如何调试 JavaScript 程序?
通过点击相关键(通常是 F12 键),所有当代 Web 浏览器,包括 Chrome、Firefox 等,都带有一个可以随时使用的嵌入式调试器。
用户可以利用调试工具提供的各种功能。 我们用于创建 JavaScript 应用程序的代码编辑器还允许我们对 JavaScript 代码进行故障排除。
17. 关闭:它是什么? 举例说明。
当从当前范围之外的范围访问指定的变量时,会产生闭包。 它允许您从内部函数访问外部函数的范围。
每次在 JavaScript 中生成一个函数时,也会生成一个闭包。 只需在另一个函数中编写一个函数,公开它,然后利用它来实现一个闭包。
18. 在 HTML 文件中包含 JavaScript 代码有哪些方法?
JavaScript 代码主要可以通过以下两种方式之一插入:
- 当网页中只需要几行脚本时,我们可以在同一个 HTML 文件中的脚本元素中编写 JavaScript 代码。
- 要将所有脚本功能添加到网页而不阻塞代码,我们可以将 JavaScript 源文件导入 HTML 文档。
19. JavaScript 中的定时器是如何工作的?
计时器用于在预定时间运行或重复一段代码。 setTimeout、setInterval 和 clearInterval 方法用于执行此操作。
使用 setTimeout(function, delay) 函数,设置在指定延迟后运行某个函数的定时器。 函数 setInterval(function, delay) 在指定的延时内重复运行指定的函数,只有在取消时才停止。
使用 clearInterval(id) 方法告诉计时器结束。 因为计时器在单个线程上运行,所以事件可以排队等待执行。
20.您对cookies有什么看法?
cookie 通常是网站发送到用户计算机的一小段数据,并由用于访问页面的网络浏览器保存在那里。
Cookie 用于捕获网站查看活动并记住信息以供日后使用。
21. 如何制作饼干?
以下是生成 cookie 的最简单的 JavaScript 方法:
22. JavaScript 变量命名约定是什么?
在 JavaScript 中命名变量时,必须遵守以下规则:
任何 JavaScript 保留关键字都不应用作变量名。 例如,以 break 或 boolean 结尾的变量名是无效的。
JavaScript 中变量的名称不应以数字 (0-9) 开头。 它们必须以字母或下划线符号开头。
例如,123name 不是可接受的变量名,尽管 _123name 或 name123 是可接受的。 大小写在 JavaScript 变量名中很重要。 例如,测试和测试是两个不同的变量。
23. let 和 var 有什么不同?
在 JavaScript 中,变量和方法的声明可以使用 let 或 var。 这两者之间唯一真正的区别是 let 关键字的作用域是块,而 var 关键字的作用域是函数。
24. 为什么会存在自调用函数?
立即调用函数表达式或自执行匿名函数是它们的其他名称。 这些被称为“自调用函数”,因为它们由代码自动调用。
我们编写一个函数并调用它。 但是,如果我们希望函数在解释时自动运行并且我们不会再次使用它,则可以使用匿名函数。 此外,某些函数缺少名称。
25. 属性与属性的区别是什么?
JS DOM 对象的属性功能类似于某些组件的实例变量。 属性可以包括多种数据类型。
您可以通过与 Vanilla JS 中的对象交互或使用 jQuery 的 prop() 函数来访问属性。
属性是在 HTML 中找到的,而不是在 DOM 中。 它们与属性相当,但功能较少。 如果属性可用,建议使用它们而不是使用属性。
属性是字符串数据类型,而不是属性。
26. 在 JavaScript 中,箭头函数有什么作用?
在 JavaScript 中,箭头函数是一种快速而清晰的编写函数的方法。 箭头函数具有以下一般语法:
27. 什么是打字语言?
在类型化语言中,值而不是变量相互关联。 有两类:
动态:与 JS 中的变量可以接受数字或字符串不同,这允许变量包含多种类型。
静态:在这种情况下,一个变量只能存储一种类型; 例如,在 Java 中,字符串变量只能存储某组字符。
28. 在 JavaScript 中,请描述负无穷。
当一个负整数被 0 分割时,会在 JS 中创建静态属性 NEGATIVE INFINITY。 这些是它的一些关键特征:
无需创建其他对象即可访问 NEGATIVE INFINITY。
NEGATIVE INFINITY 属性的值对应于全局对象的无穷大属性的负值。
29. undefined 和 null 有什么区别?
未定义表示尚未赋予值的已声明变量。 另一方面,Null 是一个赋值。 它可用于表示没有值并分配给变量。
Undefined 本身就是一个类型(未定义),而 null 是一个对象。 undefined 和 null 也是两种不同的类型。
30. 编写一些 JavaScript 代码来展示如何获取元素的内部 HTML。
31. 有哪些 JavaScript 框架?
用 JavaScript 创建的应用程序框架称为 JavaScript 框架。 按照 控制流,它不同于 JavaScript 库。 有几个可用的 JavaScript 框架,但是,一些更流行的框架包括:
- 角度方向
- 应对
- Vue公司
32. 在 JavaScript 中,什么是事件冒泡?
当一个事件在另一个元素中的一个元素中发生并且两个元素都为该事件注册了一个句柄时,HTML DOM API 使用事件冒泡作为一种事件传播方法。
当出现冒泡时,事件最初由最里面的元素检测和处理,然后再传递给周围的组件。
从该事件开始,执行移至其父元素。 之后,它的父元素接收执行,依此类推,直到 body 元素。
33. JavaScript memoization 是什么意思?
记忆是一种优化方法,它通过保存昂贵的函数调用的结果并在再次接收到相同的输入时重用它们来加速您的代码。
如果一个函数由于执行复杂的计算而需要大量时间和内存来执行,则该函数被称为代价高昂。 缓存会迅速填充昂贵函数调用的结果。
如果使用相同的输入参数再次调用相同的函数,它将绕过必要的计算并返回缓存的值。
因为该函数不需要重做任何计算或它已经执行的计算,所以这种方法可以显着节省程序使用的时间和内存。
34. 进出口是什么意思?
我们可以借助导入和导出来创建模块化 JavaScript 代码。 我们可以使用导入和导出将代码分成几个文件。 例子包括
35. 什么是 JavaScript 的“严格”模式,它是如何激活的?
您可以使用严格模式改进代码中的错误检查。
使用严格模式时,您无法将属性添加到不可扩展的对象、将值分配给只读属性、使用隐式声明的变量或将值分配给只读变量。
通过使用“use strict”开始一个文件、程序或函数,您可以激活严格模式。
36. 操作符instanceof是做什么的?
instanceof 运算符确定对象的原型链是否具有构造函数的原型属性的任何实例。 换句话说,instanceof 运算符在运行时确定对象是否是类的实例。
下面的示例中使用 instanceof 运算符来确定变量用户的类型。
37、在JavaScript中,提示框是什么意思?
提示框是带有允许用户提供输入的文本框的框。 通过 prompt() 函数显示一个要求输入的对话框。 如果您需要用户在查看页面之前输入值,请使用提示框。
用户必须在输入值后出现的弹出框中选择“确定”或“取消”才能继续。
38. 在 JavaScript 中,生成器有什么作用?
生成器是可以在不同时间使用的函数。 这些函数的上下文和变量绑定在重新进入时被保存和维护。
生成器函数的初始调用返回一种特定类型的迭代器,称为生成器。 下一步是调用生成器的 next 方法来使用该值。 在遇到 yield 关键字之前,生成器函数会一直运行。
39. BOM:它是什么?
BOM 或浏览器对象模型允许用户与浏览器交互,其中窗口作为第一个对象。 除了其他功能之外,窗口对象还具有文档、历史记录、屏幕、导航器和位置。
然而,窗口的功能既可以直接访问,也可以通过引用窗口来访问。
40. 延迟脚本:它们在 JavaScript 中提供什么功能?
当页面加载时,浏览器开始解析 HTML 代码。 默认情况下,浏览器在遇到脚本时会暂停解析 HTML 代码并开始运行脚本。
脚本完成后,浏览器继续处理 HTML 代码。
缓慢的服务器或大型脚本会延迟页面加载。 延迟脚本推迟运行脚本,直到文档处理完毕。
脚本执行的这种延迟减少了网页加载所需的时间。
结论
我们希望这些 JavaScript 面试问题对您有所帮助,无论您是准备开会的开发人员,还是试图寻找合适应聘者的招聘经理。
请记住,技术专长和知识只占招聘过程的一小部分。 为了确保您找到(或找到合适的申请人)这份工作,过去的经验和软技能同样重要。
请注意,开放式 JavaScript 面试问题通常有几个正确答案。 面试官对你的回答背后的推理感兴趣,而不仅仅是你记住的答案。
准备好接受后续询问,了解您是如何做出回应的,并始终能够解释您的思考过程。
看一看 Hashdork的采访系列 为面试准备提供帮助。
阿伦
哇,这篇文章在我的 Javascript 面试准备过程中帮助了我很多