这里废话不多说了,直接进入主题,先看一段代码实例:
   [ 其他 ] 运行代码    下载代码
<script>
alert(webName);//undefined
var webNames="51前端";
alert(webName);//51前端
</script>
以上代码中,第一个弹出值是undefined,第二个弹出值是蚂蚁部落,下面分析一下原因:

这是由于javascript执行引擎预编译造成的,也就是javascript会在语句执行前会先对变量的声明进行预编译,但是这个阶段并没有进行初始化,也就是没有赋值,赋值是在执行阶段进行的,于是,第一个alert语句执行的时候,变量已经被声明,但是并没有被初始化。所以以上代码等同于以下代码:
   [ 其他 ] 运行代码    下载代码
<script>
var webNames
alert(webName);
webNames="51前端";
alert(webName);
</script>
这也就是所谓的“提前声明”,也就说var语句具有较高的优先级,在代码执行前会进行预编译操作。同样的道理,使用function声明一个函数也具有“提前声明”效果,看一段代码实例:
   [ 其他 ] 运行代码    下载代码
<script type="text/javascript">
alert(typeof func); 
func(); 
function func() 
{ 
   alert("51前端欢迎您"); 
};
</script>
以上代码,第一alert会弹出function,函数执行会弹出“蚂蚁部落欢迎您”。

需要注意的是,函数声明不等同于函数语句,再看一段代码实例:
   [ 其他 ] 运行代码    下载代码
<script>
alert(typeof func);  
func();  
var func=function() 
{  
  alert("51前端欢迎您");  
};
</script>

代码描述:javascript 函数 变量 简单介绍。javascript函数和变量提前简单介绍



165 220



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册



×
×
51前端

注册

×
绑定手机

请绑定手机号,在继续操作

×
单次下载支付

应付金额:279

支付完成后,回到下载页面,在进行下载

官方QQ群
意见反馈
qq群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到