首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

关于js 函数的1点疑问? 跪求解释

2012-09-15 
关于js 函数的一点疑问? 跪求解释function test( ){var yyp ddddvar yyp alert( yyp )}这个会弹出d

关于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';

你不会知道将来浏览器会怎么解释这几个语句

热点排行