欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript面试题:一道关于变量提升的题

程序员文章站 2023-11-09 08:26:46
javascript面试题:一道关于变量提升的题 请问打印结果是? a、666 b、undefined c、function a(){}; d、function a(){console.log(&...

javascript面试题:一道关于变量提升的题

JavaScript面试题:一道关于变量提升的题

请问打印结果是?

a、666

b、undefined

c、function a(){};

d、function a(){console.log(“a”);};

答案是:喎? f/ware/vc/"="" target="_blank" class="keylink">vcd4ncjxwpjxpbwcgywx0pq=="这里写图片描述" src="/uploadfile/collfiles/20180622/20180622112139352.png" title="" />

解析:

函数的所有形参(如果我们是在函数执行上下文中)

— 由名称和对应值组成的一个变量对象的属性被创建;没有传递对应参数的话,那么由名称和undefined值组成的一种变量对象的属性也将被创建。

所有函数声明(functiondeclaration, fd)

—由名称和对应值(函数对象(function-object))组成一个变量对象的属性被创建;如果变量对象已经存在相同名称的属性,则完全替换这个属性。

所有变量声明(var, variabledeclaration)

— 由名称和对应值(undefined)组成一个变量对象的属性被创建;如果变量名称跟已经声明的形式参数或函数相同,则变量声明不会干扰已经存在的这类属性。

喎?>