软件下载

js面试题(见的JavaScript面试问题)

软件下载 投稿 2022-06-11 17:03:25 浏览

今天,我们将讨论并回答作为JavaScript开发人员会遇到的常见JavaScript面试问题。这些包括不同的精心安排和回答的问题,让你为自信地参加下一次面试做好准备。

JS中存在哪些不同的数据类型?

js中有两种主要的数据类型,它们是基本数据和非基本数据类型。

基本数据类型包括:

字符串:字符串是字母数字字符的集合。我通过键入双引号,单引号或反引号字符来启动字符串。双引号和单引号的行为相同,反引号字符具有一些额外的功能。

布尔值:布尔值有两个值。真与假。当我们创建一个布尔值时,我们只是说它是真的还是假的。

Null :当变量赋给零或空字符串时,其数据类型为 null。

未定义:当变量被声明并赋给无时,它的数据类型为“未定义”,或者当您尝试访问尚未声明的变量时。

非基本数据类型包括:

对象:对象是具有属性和类型的独立实体。

例如:

译文:常见的JavaScript面试问题「渡一教育」

 

数组 :数组是用于存储不同元素的单个变量。

例如:

译文:常见的JavaScript面试问题「渡一教育」

 

“==”和“===”运算符之间的区别

“==”和“===”都用于比较变量的值,但是“==”不检查数据类型,而“===”检查数据类型。

例如:

译文:常见的JavaScript面试问题「渡一教育」

 

解释JS中的隐式类型强制

JS的隐式强制仅指JS试图将意外的值类型强制为预期类型。因此,可以在需要数字的位置传递字符串,在需要字符串等位置传递对象,然后尝试将其转换为正确的类型。

例如:

译文:常见的JavaScript面试问题「渡一教育」

 

JS是静态类型语言还是动态类型语言?

JS是动态类型的,这意味着解释器在运行时根据变量当时的值为变量分配一个类型。

JS中的NaN属性是什么?

在JS中,NaN是“Not-a-Number”的缩写,是一个不是合法数字的数字。全局NaN属性与数字相同。

例如:

译文:常见的JavaScript面试问题「渡一教育」

 

按值传递和按引用传递的解释

“按值传递”意味着将变量的实际值传递到函数中。而“通过引用传递”意味着将变量本身传递到函数中(不仅仅是值)。

例如:

译文:常见的JavaScript面试问题「渡一教育」

 

什么是JS中的立即调用函数?

立即调用的函数表达式是一种在创建函数后立即执行函数的方法。

IIFE非常有用,因为它们不会污染全局对象,并且是隔离变量声明的简单方法。它们括在括号中,并以括号结尾。

例如:

译文:常见的JavaScript面试问题「渡一教育」

 

解释JS中的高阶函数

对其他函数进行操作的函数(通过将它们作为参数或返回它们)称为高阶函数。

高阶函数允许我们对动作进行抽象,而不仅仅是值。它们有几种形式。例如,我们可以有创建新函数的函数,也可以有可以更改其他函数的函数。

解释“this”关键字

“this”关键字指的是正在执行当前代码的对象。它引用正在执行当前函数的对象。与其他语言相比,函数的“this”关键字在 JavaScript 中的行为略有不同。

在全局执行上下文中,“this”是指全局对象,无论是否处于严格模式。

在函数内部,其值取决于函数的调用方式。

如果代码未处于严格模式,并且调用未设置“this”的值,则这将默认为全局对象,即浏览器中的窗口。

译文:常见的JavaScript面试问题「渡一教育」

 

解释call()、apply()和 bind()方法

bind() 方法创建一个新函数,该函数在调用时,其this关键字的设置为提供的值。

call() 方法调用具有给定此值的函数和单独提供的参数。
这与前者的主要区别在于:

  • 还接受其他参数
  • 立即执行它被调用的函数。
  • call() 方法不会复制正在调用它的函数。

apply() 方法与call()方法类似,但不同之处在于 call()接受用逗号分隔的参数,而 apply接受参数作为数组。

例如:

译文:常见的JavaScript面试问题「渡一教育」

 

JS中的Currying是什么?

Currying实际上是一个将函数链接在一起的过程,通过利用lambda演算来减少它们所采用的参数数量。这种技术为我们提供了一个选项来控制如何将参数传递给函数。

Currying是一种函数式编程技术,它将一个接受多个参数的函数转换为一系列嵌套函数,每个嵌套函数只接受一个参数。

译文:常见的JavaScript面试问题「渡一教育」

 

解释JS中的范围和作用域

作用域是在运行时访问代码的某些特定部分中的变量、函数和对象的方式。

它们主要有两种类型:

全局作用域 :

在函数外部定义的变量位于全局作用域中。此外,整个JavaScript文档中只有一个全局作用域。声明全局变量后,可以在代码中的任何位置使用该变量,即使在函数中也是如此。

局部作用域:

函数内定义的变量位于局部作用域中。它们对该函数的每次调用都有不同的作用域。此外,调用每个函数时都会创建一个新作用域。所以还有一个函数范围。

例如:

译文:常见的JavaScript面试问题「渡一教育」

 

作用域链:作用域链用于解析JavaScript中变量名称的值。如果没有作用域链,如果不同作用域定义了多个变量名称,Javascript引擎将不知道要为某个变量名称选择哪个值。

什么是对象原型?

Prototype属性基本上是一个对象(也称为原型对象),我们可以在其中附加原型对象中的方法和属性,这使所有其他对象能够继承这些方法和属性。

原型是JavaScript对象相互继承功能的机制。

例如:

译文:常见的JavaScript面试问题「渡一教育」

 

什么是回调?

作为参数传递给另一个函数的任何函数,以便可以在该函数中执行该函数,该函数称为回调函数。

什么是编程语言中的递归?

函数直接或间接调用自身的过程称为递归,相应的函数称为递归函数。使用递归算法,可以很容易地解决某些问题。

构造函数在JS中的用途是什么?

构造函数是一个特殊的函数,它创建和初始化一个类的对象实例。

在JS中,构造函数在使用 new 关键字创建对象时被调用。构造函数的目的是创建一个新对象并为任何现有对象属性设置值。构造函数的目的是创建一个对象并在存在任何对象属性时设置值。

这是一种创建对象的好方法,因为不需要显式声明要返回的内容,因为默认情况下,构造函数会返回在其中创建的对象

译文:常见的JavaScript面试问题「渡一教育」

 

什么是DOM?

JS DOM(文档对象模型)是一个界面,允许开发人员操作网站的内容,结构和样式。

DOM包含一堆节点,其中每个节点表示一个HTML元素。标记始终位于顶部,因此称为“根节点”。其余的节点位于它下面,因此被称为“子节点”。底部的节点称为“叶子”,通常填充元素的属性,值和事件。

译文:常见的JavaScript面试问题「渡一教育」

「真诚赞赏,手留余香」

求资源网

真诚赞赏,手留余香

使用微信扫描二维码完成支付

继续浏览有关编程的文章
发表评论
留言与评论(共有 0 条评论)
   
验证码:
版权声明

求资源网所发布的一切破解补丁,软件,以及其他分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途。
否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。