1.使用var,let,const进行变量声明
2.函数式声明以上两种声明变量的区别在于:
涉及变量需提前时,第一种只是变量提前,赋值不提前。而第二种函数式声明的话不仅变量提前,赋值也会提前。举个例子:看下图,输出则是function a () {console.log('2')},function a () {console.log('1')},因为d是局部变量,所以会报错。
2.函数式声明以上两种声明变量的区别在于:
涉及变量需提前时,第一种只是变量提前,赋值不提前。而第二种函数式声明的话不仅变量提前,赋值也会提前。举个例子:看下图,输出则是function a () {console.log('2')},function a () {console.log('1')},因为d是局部变量,所以会报错。
解决方案 »
- 紧急求助!!ExtJS grid triggerfield的问题
- 求解 onmouseover 实现下拉表功能。
- 求助!highcharts响应单击事件问题
- 【求助:一个可以展开/折叠显示的表格】
- 怎么将js中的变量值传给bean???
- JQuery如何菜单变换图像
- 巨难:如何用打开的窗口刷新父窗口? (两个网页在同一个域,但是不在同一台机器上)
- 请问如何让窗口最大化显示?注意,可不不是广告的哪种
- 一个页面两个frame:a1,a2.a1中有个iframe:if2。现要在if2中点击超链接,在a2中显示。怎么写javascript
- Extjs4如何实现打印功能??
- 路过的各位大哥教教老弟
- 使用vue集成UEditor是遇到的问题:视频、音频、图片、附件等功能不能用了
!function () {
alert(a)
a()
var a = function () {
console.log('1')
}
function a () {console.log('2')}
alert(a)
var d = c = a
}()
alert(d)
alert(c)其中
alert(a)
a()
var a = function () {
console.log('1')
}
function a () {console.log('2')}
alert(a)
就是考的两种声明方式的提前,d,c只是附加的作用域问题的。不过还是挺感谢你一起来探讨的,3q
另外,你的这个:function的方式属于构造时赋值,var属于执行时赋值,就很好的解释了声明提前和声明+赋值提前了。