面试中我最常被问到的 19 个 JavaScript 问题
作为应届毕业生,准备面试非常困难。你对他们的要求、他们对应届毕业生的期望(包括知识和技术技能)以及最重要的,应该申请哪种技能组合几乎一无所知。就我而言,我从一开始就明确了目标:申请 UI 开发人员的职位。
如果你刚刚毕业,并希望进入前端领域,那么你的选择是正确的。因为该领域目前正蓬勃发展,React、Angular 等新技术以及其他先进框架正在涌现。
然而,我发现面试官并不指望应聘者完全掌握任何框架。他们只希望我们精通基本的 Web 技术,例如 HTML、CSS 以及最重要的JavaScript。在我申请过的多家公司中,经过几次拒绝和筛选后,我逐渐明白了一件事。如果你申请的公司正在寻找能够使用高级 JS 框架的专业人士,那么他们会寻找精通 JavaScript 的候选人,而 JavaScript 是所有这些框架的基础。在这里,我们将讨论我在面试中经常遇到的 19 个常见的 JavaScript 面试问题。
注意:- Fotot 测试- 使用我们高性能的设备云在不同的移动和桌面设备上测试您使用 Fotot 创建的网站。
什么是对象以及如何创建它?
JavaScript 是基于对象的语言,所以一切皆对象。不过,我们仍然可以将对象定义为具有自身行为和状态的实体。
创建对象的常用方法是使用“new”关键字创建实例。
Var object = new Object();
什么是范围以及有多少个范围?
范围决定了如何在代码的特定部分访问对象、函数或变量。
有两种类型 -
全局– 变量在函数外部定义,可以从代码的任何部分访问。
var name = 'LambdaTest';
console.log(name); // logs 'LambdaTest'
function newLogName() {
console.log(name); // 'name' is accessible here and everywhere else
}
newLogName();
本地- 在这里,变量在函数内部定义,并且只能在函数内部调用时访问。
// Global Scope
function sampleFunction() {
// Local Scope #1
function oldFunction() {
// Local Scope #2
}
}
// Global Scope
function newFunction() {
// Local Scope #3
}
// Global Scope
你说的“这”是什么意思?
与其他面向对象编程语言不同,在其他面向对象编程语言中,“this”是一个由类实例化的对象,而在 JavaScript 中,“this”是一个方法所有者的对象。
什么是匿名函数?
顾名思义,它是一个没有名称的函数。它们在运行时使用函数运算符动态声明,因为它比声明符提供了更大的灵活性。
var display=function()
{
alert("Anonymous Function is declared");
}
display();
您对 BOM 了解多少?
BOM,又称浏览器对象模型,是浏览器的交互媒介。默认对象是窗口,所有函数都可以直接调用,也可以通过指定窗口来调用。历史记录、屏幕和位置是窗口的不同属性。
什么是 DOM 及其用途?
文档对象模型(DOM)代表 HTML 文档。它用于更改 HTML 文档的内容。
如何从特定索引返回字符?
charAt() 方法可用于查找任意特定索引处的字符值。假设字符串的长度为 n,则索引可以从 0 开始,到 n-1 结束。但是,索引值不能为负数,也不能等于或大于字符串的长度。
var str="LambdaTest";
document.writeln(str.charAt(4));
“==” 和 “===” 的区别
这可能是 JavaScript 面试题中最常被问到的问题。
类型转换相等性 (==) 检查两个变量是否相似,而不管它们的数据类型如何。例如,(“3” ==3) 将返回 true。
严格相等性 (===) 检查两个变量的数据类型和值是否相似。例如,(“3” ===3) 将返回 false。
JS 中有哪些不同的数据类型?
JavaScript 具有以下数据类型 -
什么是原型属性?
原型属性通常用于实现继承。每个函数都有一个原型属性,默认值为 null。方法和属性被添加到原型中,以便实例可以使用。你可以用计算矩形周长的示例来回答这道 JavaScript 面试题。
function Rectangle(x, y) {
this.x = x;
this.y = y;
}
Rectangle.prototype.perimeter = function() {
return 2 * (this.x + this.y);
}
var rectangle = new Rectangle(4, 3);
console.log(rectangle.perimeter()); // outputs '14'
什么是闭包?
在 JavaScript 函数内部定义的函数称为闭包。它可以访问三种类型的作用域(内部、外部和全局)。对于外部函数,除了访问变量之外,它还可以查看参数。
如何用 JavaScript 编写“Hello World”?
这也许是所有 JavaScript 新手都会问的最基本的面试问题。它可以使用以下语法编写,并放在 HTML 文件的正文中。document.write
(“JavaScript Hello World!”);
如何使用外部 JS 文件?
可以通过使用以下语法从 HTML 文档调用文件来完成,就像调用外部 CSS 文件一样。
<script type="text/javascript" src="custom.js"></script>
异步编程及其重要性
在这里,JS 引擎在一个事件循环中运行。当遇到阻塞操作时,会触发一个请求,代码会持续运行。一旦响应准备好,就会触发中断。事件处理程序会执行,而控制流则会继续执行。因此,通过异步编程,单个线程可以同时处理多个操作。
Window对象的使用
这不是一个 JavaScript 对象,而是由浏览器自动创建的外部窗口。它用于显示弹出对话框。例如
alert() — 显示一个带有自定义消息和“确定”按钮的警告框。
注意:- 英特尔 XDK 测试 - 在 3000 多种不同的桌面和移动浏览器上测试基于英特尔 XDK CSS 框架的网站。
客户端 JavaScript 与服务器端有何不同?
客户端 JavaScript 通常由基本语言以及与浏览器中运行的脚本相关的某些预定义对象组成。它直接嵌入 HTML 中,由浏览器在运行时执行。
服务器端 JS 与客户端 JavaScript 非常相似。但是,它在服务器端执行,并且仅在代码编译后部署。
您可以将此认证作为使用 JavaScript 进行测试自动化领域的专业知识的证明,以增强自己的能力并促进您的职业发展。
以下是 LambdaTest 的 Selenium JavaScript 101 认证的简要介绍:
为什么 JavaScript 需要调试?
这是另一个重要的 JavaScript 面试题。经常会发生这样的情况:脚本在浏览器中没有显示任何错误,但输出却与预期不符。在这种情况下,找出错误的最佳方法是通过调试。可以使用 console.log() 或 debugger 关键字来完成。
什么是函数提升?
提升是 JavaScript 中的一种机制,在代码执行之前,函数声明和变量会被移动到作用域的顶部。这意味着,无论变量和函数声明在哪里,也无论作用域是局部的还是全局的,函数都会被移动到作用域的顶部。
注意:- Ionic 测试 - 一个可扩展且可靠的在线测试云,用于 Ionic 网站的手动和自动化测试。
JavaScript 中变量的命名约定
在命名变量时,我们必须遵循一定的规则——
-
不要使用 JavaScript 保留的关键字。例如 Boolean、break 等。
-
变量名不要以数字开头。应该以“_”或字母开头。例如,不要写“123func”,而要写“func123”或“_123func”。
-
变量区分大小写。“Func”和“func”将被区别对待。
除了我上面提到的 JavaScript 面试题外,面试中还会问到很多常见的 JavaScript 问题。这完全取决于面试官的思维方式以及他擅长的领域。磨练所有基础知识,你就能为下一次面试做好准备。希望这篇博客对正在准备 JavaScript 面试的朋友们有所帮助。也欢迎分享那些给你留下深刻印象的 JavaScript 面试题。
文章来源:https://dev.to/lambdatest/19-javascript-questions-i-have-been-asked-most-in-interviews-4e4b