会出现alert出来的是undefined,原因是因为在函数域里定义一个和外部变量一样名称的变量时,变量的声明会提升至第一句,赋值则不会变。所以上述语句其实是这样执行的 下面的程序是什么结果? [javascript] view plaincopy var foo = 1; function bar ...
分类:
Web程序 时间:
2016-06-21 19:03:21
阅读次数:
217
好久没写博客了,原本想实训结束能对整个实训项目认真总结一下,没想到回到学校一点都不轻松,最近在制作网页版简历,遇到了一个小问题,现在不总结以后肯定忙得顾不上,所以长话短说,抓紧时间写下来. 对js语法比较熟的同学可能都知道:js是没有块级作用域的,有一个新手很容易出错的地方 这段代码会输出10个10 ...
分类:
Web程序 时间:
2016-04-16 13:47:34
阅读次数:
203
1 var a = 1;2 function foo() {3 console.log(a);4 var a = 2;5 6 }7 8 foo(); //undefined根据变量提升机制,最后得出undefined;变量提升是指在一个作用域中声明的变量,JS解...
分类:
Web程序 时间:
2016-01-03 21:06:10
阅读次数:
202
js 变量、函数提升
先简单理解下作用域的概念,方便对变量与函数提升的概念的理解
function foo() {
var x = 1;
if (x) {
var x = 2;
}
console.log(x);
}
foo();// 2结果为2,可见js中并没有块级作用域的概念
可以使用下面的方法创造自己的作用域,这样不会干扰到外部变量
...
分类:
Web程序 时间:
2015-07-30 14:59:45
阅读次数:
310
最近,在读《你不知道的JavaScript(上卷)》这本书,书中详细阐述了JavaScript众多重要但经常被大家忽略的点,在此强烈推荐!!!书中,第4章讲述了“提升”,从示例出发讲述了变量和函数提升的过程,纠正了自己以前错误的理解(相信好多人理解都是错误)!
我们习惯将var a = 2;看做一个声明,而实际上JavaScript引擎不这么认为!下面几个示例让你彻底搞懂JavaScript中的...
分类:
编程语言 时间:
2015-05-30 10:47:06
阅读次数:
163