8道经典JavaScript面试题
JavaScript是前端开发中非常重要的一门语言,浏览器是他主要运行的地方。JavaScript是一个非常有意思的语言,但是他有很多一些概念,大家经常都会忽略。比如说,原型,闭包,原型链,事件循环等等这些概念,很多JS开发人员都研究不多。 所以今天,就来和大家看看下面几个问题,大家可以先思考一下,尝试作答。 八道面试题 问题1:下面这段代码,浏览器控制台上会打印什么? 问题2:如果我们使用 let 或 const 代替 var,输出是否相同 问题3:“newArray”中有哪些元素? 问题4:如果我们在浏览器控制台中运行'foo'函数,是否会导致堆栈溢出错误? 问题5: 如果在控制台中运行以下函数,页面(选项卡) 是否会有响应 问题6: 我们能否以某种方式为下面的语句使用展开运算而不导致类型错误 问题7:运行以下代码片段时,控制台上会打印什么? 问题8:xGetter() 会打印什么值? 答案 前面的问题我们都举例出来了,接下来我们会从头到尾,一个个来分析我们这些问题的答案,给大家一些学习的思路 问题1: 使用var关键字声明的变量在JavaScript中会被提升,并在内存中开辟空间,由于没有赋值,无法定义数值类型,所以分配默认值undefined。var声明的变量,真正的数值初始化,是发生在你确定赋值的位置。同时,我们要知道,var声明的变量是函数作用域的