送你43道JS面试题(收藏)

导读

这两天的GitHub Trending repositories被一个名叫 javascript-questions的项目霸榜了,项目中记录了一些JavaScript题目。

我大概从头到尾看了一遍,都是一些基础的题目,我大概花了半个小时(有些题很简单,可以一扫而过)把这些题做完了,虽然题目很简单,但是每道题都对应一个知识点,如果这个知识点你没有接触过,那肯定会做错,如果你接触过这些知识点,那么这些题对你来说就很容易。

建议大家也花半个小时来做一做,以便查漏补缺。

为方便大家能够更快的做题,而不把时间浪费在翻译上,我又花了几个小时把它们翻译成了中文,当然已经获得了作者授权。

文中有些点作者解释的不太完整,为了更好的理解,我在文中添加了一些个人解释。

仓库地址:https://github.com/lydiahallie/javascript-questions

JavaScript 进阶问题列表

我在我的Instagram上发布了每日JavaScript选择题,我也会在这里发布!

从基础到高级:测试您对JavaScript的了解程度,刷新您的知识,或为您的编码面试做好准备!💪 🚀我每周用新问题更新这个项目。

答案位于问题下方的折叠部分,只需单击它们即可展开。 祝你好运❤️

1. 下面代码的输出是什么?

function sayHi() {
 console.log(name);
 console.log(age);
 var name = "Lydia";
 let age = 21;
}

sayHi();

A: Lydia 和 undefined

B: Lydia 和 ReferenceError

C: ReferenceError 和 21

D: undefined 和 ReferenceError

答案: D

在函数中,我们首先使用var关键字声明了name变量。 这意味着变量在创建阶段会被提升(JavaScript会在创建变量创建阶段为其分配内存空间),默认值为undefined,直到我们实际执行到使用该变量的行。 我们还没有为name变量赋值,所以它仍然保持undefined的值。

使用let关键字(和const)声明的变量也会存在变量提升,但与var不同,初始化没有被提升。 在我们声明(初始化)它们之前,它们是不可访问的。 这被称为“暂时死区”。 当我们在声明变量之前尝试访问变量时,JavaScript会抛出一个ReferenceError。

译者注:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/97.html