一個挺有意思的Javascript小問題說明
更新時間:2011年09月26日 22:11:58 作者:
目前為止,就我的猜測,javascript執(zhí)行應(yīng)該是先做語法分析,然后順便分析完成了變量表(本地和全局)
先來看以下3段代碼
var firstName = "Mark";
(function DisplayFirstName() {
console.log(firstName);
})();//必然輸出 Mark
var lastName = "Aut";
(function DisplayLastName() {
var lastName = "Bru";
console.log(lastName);
})();//必然輸出 Bru, 本地作用域的優(yōu)先級高于全局作用域
//那么下面這段代碼呢?
var lastName = "Aut";
(function DisplayLastName() {
console.log(lastName);
var lastName = "Bru";
console.log(lastName);
})();//誰能猜出結(jié)果是什么?
這個輸出的結(jié)果是:
LOG: undefined
LOG: Bru
這出乎了我的意料, 我原來以為應(yīng)該是 "Aut" 和 "Bru"的
我原來的理解是: 在程序第一個輸出lastName的時候, 程序沒有找到本地聲明的lastName變量,所以使用了全局的lastName定義, 第二次的時候才使用本地變量的值
(因為在我的概念里,javascript是解釋型語言,一句一句的......執(zhí)行)
看到這個結(jié)果,看來javascript的執(zhí)行并不都是順序的..
目前為止,就我的猜測,javascript執(zhí)行應(yīng)該是先做語法分析,然后順便分析完成了變量表(本地和全局)
然后才開始順序執(zhí)行一行行腳本
還請各位javascript高手解惑
復(fù)制代碼 代碼如下:
var firstName = "Mark";
(function DisplayFirstName() {
console.log(firstName);
})();//必然輸出 Mark
var lastName = "Aut";
(function DisplayLastName() {
var lastName = "Bru";
console.log(lastName);
})();//必然輸出 Bru, 本地作用域的優(yōu)先級高于全局作用域
//那么下面這段代碼呢?
var lastName = "Aut";
(function DisplayLastName() {
console.log(lastName);
var lastName = "Bru";
console.log(lastName);
})();//誰能猜出結(jié)果是什么?
這個輸出的結(jié)果是:
LOG: undefined
LOG: Bru
這出乎了我的意料, 我原來以為應(yīng)該是 "Aut" 和 "Bru"的
我原來的理解是: 在程序第一個輸出lastName的時候, 程序沒有找到本地聲明的lastName變量,所以使用了全局的lastName定義, 第二次的時候才使用本地變量的值
(因為在我的概念里,javascript是解釋型語言,一句一句的......執(zhí)行)
看到這個結(jié)果,看來javascript的執(zhí)行并不都是順序的..
目前為止,就我的猜測,javascript執(zhí)行應(yīng)該是先做語法分析,然后順便分析完成了變量表(本地和全局)
然后才開始順序執(zhí)行一行行腳本
還請各位javascript高手解惑
相關(guān)文章
相關(guān)JavaScript在覽器中實現(xiàn)可視化的四種方式
這篇文章主要介紹了相關(guān)JavaScript在覽器中實現(xiàn)可視化的四種方式,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下2022-09-09
微信小程序canvas開發(fā)水果老虎機(jī)的思路詳解
這篇文章主要介紹了微信小程序canvas開發(fā)水果老虎機(jī)的思路,本文通過思路代碼分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02

