JavaScript 面试问题和答案(2023)-高级水平
在本文中,您将学习在面试中经常被问到的JavaScript面试问题和答案-高级水平。在继续学习JavaScript面试问题和答案-高级水平之前,我们先学习完整的JavaScript教程。 。
1. JavaScript中的“严格”模式是什么,如何启用它
严格模式是ECMAScript 5中的一个新特性,它允许您将程序或函数放在“严格”操作环境中。这个严格的上下文阻止某些操作,并抛出更多的异常。语句“use strict”指示浏览器使用严格模式,这是一组减少和更安全的JavaScript功能。
2. 如何获取复选框的状态
DOM输入复选框属性用于设置或返回复选框字段的选中状态。此属性用于反映HTML的Checked属性。
document.getElementById("GFG").checked;
如果复选框被选中,则返回True。
3. 如何解释JavaScript中的闭包以及何时使用它
闭包是在子函数运行时创建的,即使父函数已经执行,子函数仍然保持父作用域的环境。闭包是一个与函数相关的局部声明变量。闭包在使用它们时可以更好地控制代码。
// Explanation of closure
function foo() {
let b = 1;
function inner() {
return b;
}
return inner;
}
let get_func_inner = foo();
console.log(get_func_inner());
console.log(get_func_inner());
console.log(get_func_inner());
4. call()和apply()方法之间的区别是什么
两种方法在不同的情况下使用
- call()方法: 它调用方法,以拥有者对象为参数。关键字this指的是函数的“拥有者”或它所属的对象。我们可以调用可以用于不同对象的方法。
- apply()方法: apply()方法用于编写可以用于不同对象的方法。它与函数call()不同,因为它将参数作为数组传入。
5. 如何在JavaScript中从超链接中定位特定的框架
可以使用超链接中的target属性来实现。比如
<a href="/geeksforgeeks.htm" target="newframe">新页面</a>
6. 编写JavaScript中的错误
有三种不同类型的JavaScript错误。
- 语法错误:
语法错误是一系列字符或标记的语法错误,旨在使用特定编程语言编写。
-
逻辑错误:
这是最难追踪的错误,因为它是在编码的逻辑部分上出现的错误,或者逻辑错误是导致程序操作不正确和异常终止的错误。
-
运行时错误:
运行时错误是在程序运行期间发生的错误,也被称为异常。
7. JavaScript和Jscript之间的区别是什么
- 它是由Netscape开发的脚本语言。
- 它被用于设计客户端和服务器端应用程序。
- 它完全独立于Java语言。
Jscript
- 它是由Microsoft开发的脚本语言。
- 它被用于设计用于全球互联网的活跃在线内容。
8. “var myArray = [[]];” 这个语句的声明是什么意思
在JavaScript中,这个语句用于声明一个二维数组。
9. 一个HTML元素可以在JavaScript代码中以几种方式访问
在JavaScript中,有四种可能的方式来访问HTML元素,它们是:
- getElementById() 方法:通过元素的id名称来获取元素。
- getElementsByClass() 方法:获取所有具有给定类名的元素。
- getElementsByTagName()方法: 用于获取所有具有给定标签名称的元素。
- querySelector()方法: 此功能使用CSS样式选择器并返回第一个选定的元素。
10. innerHTML和innerText之间有什么区别
innerText属性设置或返回指定节点及其所有后代的纯文本文本内容,而innerHTML属性设置或返回元素中的纯文本或HTML内容。与innerText不同,innerHTML允许您使用HTML富文本,并且不会自动编码和解码文本。
11. JavaScript中的事件冒泡是什么
考虑一种情况,一个元素位于另一个元素内,并且它们都处理一个事件。事件在冒泡时,最内层的元素首先处理事件,然后是外层元素,依此类推。
12. 以下代码的输出结果是什么
let X = { geeks: 1 };
let Output = (function () {
delete X.geeks;
return X.geeks;
})();
console.log(output);
在这里,删除语句将删除对象的属性。X是一个具有geeks属性的对象,并且这是一个自调用函数,它将从对象X中删除geeks属性,因此结果将是undefined。
13. JavaScript和ECMA Script有什么关系
JavaScript是一种主要的语言,必须遵守一些规则和规定,其中包括ECMA Script,这些规则还为JavaScript语言带来了新的特性。
14. 如何隐藏不支持JavaScript的旧浏览器的JavaScript代码
要隐藏不支持JavaScript的老浏览器中的JavaScript代码,您可以使用
<!-- 在<script> 标签之前和 </script> 标签之后添加另一个//-->
所有的老浏览器都会将其视为长注释的HTML。支持JavaScript的新浏览器将将其视为在线注释。
15. 以下代码的输出是什么
let output = (function(x) {
delete x;
return x;
})(0);
document.write(output);
输出将是0。delete运算符用于删除对象的属性,但本例中的x是一个局部变量,不是对象。delete运算符不会影响局部变量。
16. 在JavaScript中,回答以下表达式的结果是true还是false
"0" == 0 // true or false ?
"" == 0 // true or false ?
"" == "0" // true or false ?
结果对第一和第二种情况是True,对第三种情况是False。
17. 如何使用任何浏览器进行调试
通过按下F12,我们可以触发任何浏览器的调试模式,并且可以通过点击控制台查看结果。
18. 什么是javascript提升
任何解释器运行代码时,所有变量都会被重新提升到原始作用域的顶部。这个方法适用于变量的声明,而不是初始化。这被称为javascript提升(javascript Hoisting)。
19. Self invocation Function
的语法是什么
自调用函数的语法:最后一个方括号包含函数表达式。
(function () {
return // body of the function
}());
20. 如何在另一个JavaScript文件中使用外部JavaScript文件
你可以使用下面的代码在另一个JavaScript文件中使用外部JavaScript代码。
let script = document.createElement('script');
script.src = "external javascript file";
document.head.appendChild(script)