Javascript Interview Questions

优质
小牛编辑
131浏览
2023-12-01

亲爱的读者,这些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 ?)

此外,您可以查看您对该主题所做的过去作业,并确保您能够自信地说出这些作业。 如果你更新鲜,那么面试官不会指望你会回答非常复杂的问题,而是你必须使你的基本概念非常强大。