标签:java ons 全局 优先 block script log fine 变量
(1) 创建函数有两种形式,一种是函数声明,另外一种是函数字面量,只有函数声明才有变量提升
console.log(a) // f a() { console.log(a) }
console.log(b) //undefined
function a() {
console.log(a)
}
var b = function(){
console.log(b)
}
相当于
var a = ‘function‘
var b
console.log(a)
console.log(b)
(2)变量提升
console.log(c); //undefined
var c = "第一次没打印出来,第二次才出来";
console.log(c); //第一次没打印出来,第二次才出来
function fn(){
console.log(d); //undefined
var d = ‘和前面的一样啊‘;
console.log(d); //和前面的一样啊
}
fn();
其实,就相当于
var c ;
console.log(c)
c = " xxxx "
console.log(c)
console.log(a); // f a() {console.log(10)}
console.log(a()); // undefined
var a = 3;
function a() {
console.log(10) //10
}
console.log(a) //3
a = 6;
console.log(a()); //a is not a function;
原理 :
var a = funtion () {
console.log(10)
}
var a;
console.log(a); // f a() {console.log(10)}
console.log(a()); // undefined
a = 3;
console.log(a) //3
a = 6;
console.log(a()); //a() is not a function;
由此可见函数提升要比变量提升的优先级要高一些,且不会被变量声明覆盖,但是会被变量赋值之后覆盖。
标签:java ons 全局 优先 block script log fine 变量
原文地址:http://www.cnblogs.com/oxiaojiano/p/7918967.html