加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

JavaScript九大面试问题集锦,助你顺利通关!

发布时间:2019-07-20 05:12:19 所属栏目:建站 来源:读芯术
导读:副标题#e# 人们认为JavaScript是最适合初学者的语言。一部分原因在于JavaScript在互联网中运用广泛,另一部分原因在于其自身特性使得即使编写的代码不那么完美依然可以运行:无论是否少了一个分号或是内存管理问题,它都不像许多其他语言那样严格,但在开始

实际操作中,关键的区别在于函数声明要被提升,而函数表达式则没有。这意味着JavaScript解释器将函数声明移动到其作用域的顶部,因此可以定义函数声明并在代码中的任何位置调用它。相比之下,只能以线性顺序调用函数表达式:必须在调用它之前解释。

如今,许多开发人员偏爱函数表达式有如下几个原因:

  • 首先,函数表达式实施更加可预测的结构化代码库。当然,函数声明也可使用结构化代码库; 只是函数声明让你更容易摆脱凌乱的代码。
  • 其次,可以将ES6语法用于函数表达式:这通常更为简洁,let和const可以更好地控制是否重新赋值变量,我们将在下一个问题中看到。

5. var,let和const有什么区别?

自ES6发布以来,现代语法已进入各行各业,这已是一个极其常见的面试问题。Var是第一版JavaScript中的变量声明关键字。但它的缺点导致在ES6中采用了两个新关键字:let和const。

这三个关键字具有不同的分配,提升和域 - 因此我们将单独讨论。

(1) 分配

最基本的区别是let和var可以重新分配,而const则不能。这使得const成为不变变量的最佳选择,并且它将防止诸如意外重新分配之类的失误。注意,当变量表示数组或对象时,const确实允许变量改变,只是无法重新分配变量本身。

Let 和var都可重新分配,但是正如以下几点应该明确的那样,如果不是所有情况都要求更改变量,多数选择中,let具有优于var的显著优势。

(2) 提升

与函数声明和表达式(如上所述)之间的差异类似,使用var声明的变量总是被提升到它们各自的顶部,而使用const和let声明的变量被提升,但是如果你试图在声明之前访问,将会得到一个TDZ(时间死区)错误。由于var可能更容易出错,例如意外重新分配,因此运算是有用的。请看以下代码:

  1. var x = "global scope"; 
  2.  
  3. function foo() { 
  4.   var x = "functional scope"; 
  5.   console.log(x); 
  6.  
  7. foo(); // "functional scope" 
  8. console.log(x); // "global scope" 

这里,foo()和console.log(x)的结果与预期一致。但是,如果去掉第二个变量又会发生什么呢?

  1. var x = "global scope"; 
  2.  
  3. function foo() { 
  4.   x = "functional scope"; 
  5.   console.log(x); 
  6. foo(); // "functional scope" 
  7. console.log(x); // "functional scope" 

尽管在函数内定义,但x =“functional scope”已覆盖全局变量。需要重复关键字var来指定第二个变量x仅限于foo()。

(3) 域

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读