关于js 函数的一点疑问? 跪求解释
function test( ){
var yyp = "dddd";
var yyp ;
alert( yyp );
}
这个会弹出 dddd;
function test( ){
var yyp = "dddd";
var yyp = "eeee";
alert( yyp );
}
这个会弹出 eeee;
function test( ){
var yyp = "dddd";
var yyp = yyp;
alert( yyp );
}
这个会弹出 dddd;
以上给出的结果是浏览器里运行的结果;
下面是我的疑问
大家知道:在js里,同名的变量,后边变量的值会覆盖前边变量的值;
按照这个思路:
第一个函数可以这样理解:第一次定义的变量yyp 值是“dddd”,第二次声明的变量,没初始化,值应为“undefined”
那么 弹出的值应该为 “undefined”,但是为什么弹出的是“dddd”;
第二个函数按照这个思路得出的结果是正确的;
第三个函数:我觉的当初始化完第一个变量后,紧接着的第二次声明,yyp变量已经被覆盖为“undefined”,再赋值的话,应该赋的是 “undefined”,但是为什么弹出的是“dddd”;
------解决方案--------------------
JScript code
var a = 1;
var a;
可以这样理解
var a;
a = 1;
a;
那么a为1.
反正记住 出现var,那么变量就在上下文的顶部被声明。
------解决方案--------------------
不要挑战底层的实现方式
不要研究不可能发生的问题
var yyp = "dddd";
var yyp ;
var yyp = 'eee';
你不会知道将来浏览器会怎么解释这几个语句