8dee 关于javascript变量声明、函数声明提升的问题
2017-02-08 21:36
561 查看
今天看到了个面试题
变量声明提升和函数声明提升,代码可以这样理解:
查了一下,说 函数声明的权重要比变量声明的权重大,同名情况下,变量声明会被忽略。这样的话,第一个console就是函数本身。事情这样结束就没意思了。再看一题。
这就不对了吧。不是说好的函数声明权重大,同名的变量声明会被忽略吗?百思不得姐(解),下班路上寒风一吹,明白了….
根据变量声明提升,和函数声明提升,上面的代码可以写成下面这样。确实是函数声明权重大于变量声明,忽略了变量的声明。但是下面还有给变量a赋值的操作。再调用a();自然就是得到2这个结果了
function fn(){ console.log(a); var a = 2; function a(){ }; console.log(a); }; fn();
变量声明提升和函数声明提升,代码可以这样理解:
function fn(){ var a; function a(){ }; console.log(a);//这里是什么? a = 2; console.log(a);//2 }; fn();
查了一下,说 函数声明的权重要比变量声明的权重大,同名情况下,变量声明会被忽略。这样的话,第一个console就是函数本身。事情这样结束就没意思了。再看一题。
function a(){ console.log(1); }; var a = function(){ console.log(2); } a();//2
这就不对了吧。不是说好的函数声明权重大,同名的变量声明会被忽略吗?百思不得姐(解),下班路上寒风一吹,明白了….
根据变量声明提升,和函数声明提升,上面的代码可以写成下面这样。确实是函数声明权重大于变量声明,忽略了变量的声明。但是下面还有给变量a赋值的操作。再调用a();自然就是得到2这个结果了
var a; function a (){ console.log(1); } console.log(a);//"function a (){}" a = function(){ console.log(2); }
相关文章推荐
- 一个经典的js中关于块级作用域和声明提升的问题
- JavaScript中函数声明,函数提升,对象属性和原型属性等问题
- 关于“C++ vs2010中声明一个类的函数,提示不兼容”问题
- Javascript变量与函数的声明与提升
- 关于JavaScript变量声明及其初始化的问题
- 关于JavaScript变量声明及其初始化的问题
- Js中有关变量声明和函数声明提升的问题
- JavaScript变量声明提升和函数声明提升
- 关于js的函数提升问题
- 关于JavaScript变量声明及其初始化的问题
- JavaScript变量提升和函数声明预解析
- C++关于函数声明和定义中参数赋值为0调用问题演示
- Js中有关变量声明和函数声明提升的问题
- 关于C++声明iterator时出现找不到namespace的问题
- 关于feof函数的bug问题
- [声明] 关于封禁BLOG帐号的问题.
- C++里关于类的函数问题~
- 关于线程插入函数如何用的问题
- 关于DLL找不到函数入口点的问题
- 一道关于函数声明与对象定义的笔试题