Javascript Interview Questions
亲爱的读者,这些JavaScript Interview Questions专门设计用于让您熟悉在面试JavaScript时可能遇到的问题的本质。 根据我的经验,好的面试官在你的面试中几乎不打算问任何特定的问题,通常问题从这个主题的一些基本概念开始,然后他们继续基于进一步的讨论和你回答的内容:
JavaScript是一种轻量级的解释型编程语言,具有面向对象的功能,允许您在其他静态HTML页面中构建交互性。
该语言的通用核心已嵌入Netscape,Internet Explorer和其他Web浏览器中。
以下是JavaScript的功能 -
JavaScript是一种轻量级的解释型编程语言。
JavaScript旨在创建以网络为中心的应用程序。
JavaScript是Java的补充和集成。
JavaScript是与HTML的补充和集成。
JavaScript是开放的跨平台。
以下是使用JavaScript的优点 -
Less server interaction −您可以在将页面发送到服务器之前验证用户输入。 这样可以节省服务器流量,这意味着服务器负载更少。
Immediate feedback to the visitors −他们不必等待页面重新加载,看他们是否忘记输入内容。
Increased interactivity −您可以创建界面,当用户使用鼠标悬停它们或通过键盘激活它们时会做出反应。
Richer interfaces −您可以使用JavaScript来包含诸如拖放组件和滑块之类的项目,以便为您的站点访问者提供丰富的界面。
我们不能将JavaScript视为一种完整的编程语言。 它缺乏以下重要功能 -
客户端JavaScript不允许读取或写入文件。 这是出于安全原因而保留的。
JavaScript不能用于网络应用程序,因为没有这样的支持。
JavaScript没有任何多线程或多进程功能。
是! JavaScript是一种区分大小写的语言。 这意味着语言关键字,变量,函数名称和任何其他标识符必须始终使用一致的字母大小写。
JavaScript非常支持Object概念。 您可以使用对象文字创建对象,如下所示 -
var emp = {
name: "Zara",
age: 10
};
您可以使用点表示法编写和读取对象的属性,如下所示 -
// Getting object properties
emp.name // ==> Zara
emp.age // ==> 10
// Setting object properties
emp.name = "Daisy" // <== Daisy
emp.age = 20 // <== 20
您可以使用数组文字定义数组,如下所示 -
var x = [];
var y = [1, 2, 3, 4, 5];
数组具有可用于迭代的length属性。 我们可以读取数组的元素如下 -
var x = [1, 2, 3, 4, 5];
for (var i = 0; i < x.length; i++) {
// Do something with x[i]
}
命名函数在定义时具有名称。 可以使用function关键字定义命名函数,如下所示 -
function named(){
// do some stuff here
}
JavaScript中的函数可以是命名的,也可以是匿名的。
匿名函数可以与普通函数类似的方式定义,但它没有任何名称。
是! 可以将匿名函数分配给变量。
是! 匿名函数可以作为参数传递给另一个函数。
JavaScript变量参数表示传递给函数的参数。
使用typeof运算符,我们可以获得传递给函数的参数类型。 例如 -
function func(x){
console.log(typeof x, arguments.length);
}
func(); //==> "undefined", 0
func(1); //==> "number", 1
func("1", "2", "3"); //==> "string", 3
使用arguments.length属性,我们可以获得传递给函数的参数总数。 例如 -
function func(x){
console.log(typeof x, arguments.length);
}
func(); //==> "undefined", 0
func(1); //==> "number", 1
func("1", "2", "3"); //==> "string", 3
arguments对象有一个callee属性,它指的是你所在的函数。 例如 -
function func() {
return arguments.callee;
}
func(); // ==> func
JavaScript着名的关键字总是指当前的上下文。
变量的范围是程序中定义它的区域。 JavaScript变量只有两个范围。
Global Variables −全局变量具有全局范围,这意味着它在JavaScript代码中的任何位置都可见。
Local Variables −局部变量仅在定义它的函数中可见。 函数参数始终是该函数的本地参数。
局部变量优先于具有相同名称的全局变量。
回调是一个普通的JavaScript函数,作为参数或选项传递给某个方法。 一些回调只是事件,被调用以使用户有机会在触发某个状态时做出反应。
只要从某个内部作用域内访问在当前作用域之外定义的变量,就会创建闭包。
下面的示例显示了变量计数器如何在创建,增量和打印功能中可见,但不在其外部 -
function create() {
var counter = 0;
return {
increment: function() {
counter++;
},
print: function() {
console.log(counter);
}
}
}
var c = create();
c.increment();
c.print(); // ==> 1
charAt()方法返回指定索引处的字符。
concat()方法返回指定索引处的字符。
forEach()方法为数组中的每个元素调用一个函数。
indexOf()方法返回第一次出现的指定值的调用String对象内的索引,如果未找到则返回-1。
length()方法返回字符串的长度。
pop()方法从数组中删除最后一个元素并返回该元素。
push()方法将一个或多个元素添加到数组的末尾,并返回数组的新长度。
reverse()方法反转数组元素的顺序 - 第一个成为最后一个,最后一个成为第一个。
sort()方法对数组的元素进行排序。
substr()方法通过指定的字符数返回从指定位置开始的字符串中的字符。
toLowerCase()方法返回转换为小写的调用字符串值。
toUpperCase()方法返回转换为大写的调用字符串值。
toString()方法返回数字值的字符串表示形式。
在JavaScript中命名变量时,请记住以下规则。
您不应该使用任何JavaScript保留关键字作为变量名称。 这些关键字将在下一节中提到。 例如,break或boolean变量名称无效。
JavaScript变量名称不应以数字(0-9)开头。 它们必须以字母或下划线字符开头。 例如,123test是无效的变量名称,但_123test是有效的。
JavaScript变量名称区分大小写。 例如,Name和name是两个不同的变量。
typeof是一个一元运算符,放在它的单个操作数之前,可以是任何类型。 它的值是一个字符串,表示操作数的数据类型。
如果操作数是数字,字符串或布尔值,则typeof运算符求值为“number”,“string”或“boolean”,并根据求值返回true或false。
它返回“对象”。
JavaScript还可以使用Document对象的cookie属性来操作cookie。 JavaScript可以读取,创建,修改和删除适用于当前网页的cookie或cookie。
创建cookie的最简单方法是为document.cookie对象分配一个字符串值,如下所示:
语法 -
document.cookie = "key1 = value1; key2 = value2; expires = date";
这里expires属性是选项。 如果您为此属性提供有效的日期或时间,则cookie将在给定的日期或时间到期,之后cookie将无法访问。
读取cookie就像写一个cookie一样简单,因为document.cookie对象的值是cookie。 因此,只要您想访问cookie,就可以使用此字符串。
document.cookie字符串将保留由分号分隔的名称=值对的列表,其中name是cookie的名称,value是其字符串值。
您可以使用字符串的split()函数将字符串分解为键和值。
有时您会想要删除cookie,以便随后尝试读取cookie不会返回任何内容。 要执行此操作,您只需将过期日期设置为过去的时间。
他很容易在客户端使用JavaScript进行页面重定向。 要将您的网站访问者重定向到新页面,您只需在头部添加一行,如下所示 -
<head>
<script type="text/javascript">
<!--
window.location="http://www.newlocation.com";
//-->
</script>
</head>
JavaScript帮助您使用window对象的print函数实现此功能。 JavaScript打印函数window.print()将在执行时打印当前网页。
Date对象是JavaScript语言中内置的数据类型。 使用新的Date()创建日期对象。
创建Date对象后,可以使用许多方法对其进行操作。 大多数方法只允许您使用本地时间或UTC(通用或GMT)时间来获取和设置对象的年,月,日,小时,分钟,秒和毫秒字段。
number对象表示数字日期,可以是整数或浮点数。 通常,您不需要担心Number对象,因为浏览器会自动将数字文字转换为数字类的实例。
语法 -
创建一个数字对象 -
var val = new Number(number);
如果参数无法转换为数字,则返回NaN(非数字)。
最新版本的JavaScript增加了异常处理功能。 JavaScript实现了try ... catch ... finally构造以及throw运算符来处理异常。
您可以捕获程序员生成的和运行时异常,但是您无法捕获JavaScript语法错误。
onerror事件处理程序是第一个促进JavaScript错误处理的功能。 只要页面发生异常,就会在窗口对象上触发错误事件。
onerror事件处理程序提供三条信息来识别错误的确切性质 -
Error message −浏览器将针对给定错误显示的相同消息。
URL −发生错误的文件。
Line number −给定URL中导致错误的行号。
接下来是什么? (What is Next ?)
此外,您可以查看您对该主题所做的过去作业,并确保您能够自信地说出这些作业。 如果你更新鲜,那么面试官不会指望你会回答非常复杂的问题,而是你必须使你的基本概念非常强大。