var foo='hello';
(function(foo){
console.log(foo);
var foo=foo||'world';
console.log(foo);
})(foo);
console.log(foo); 三次分别输出什么?
JS代码自上而下执行的时候,自执行函数不在进行变量提升,但是函数内部的变量提升还进行吗?food ||“world”改怎样理解?
等价于下面
var foo = 'hello';
(function (foo) {
var foo = undefined;
foo=//传入的foo的值
console.log(foo);//hello
foo = foo || 'world';//因为foo有值所以没有赋值world
console.log(foo);//hello
})(foo);
console.log(foo);//hello,变量作用域,变量普通类型和引用类型的问题
http://www.w3dev.cn/article/20120830/javascript-runtime-parse.aspx