JavaScript 作用域?qū)嵗治?/h1>
更新時(shí)間:2019年10月02日 11:07:58 作者:kevin.Xiang
這篇文章主要介紹了JavaScript 作用域,結(jié)合實(shí)例形式分析了JavaScript函數(shù)作用域相關(guān)概念、原理及操作注意事項(xiàng),需要的朋友可以參考下
本文實(shí)例講述了JavaScript 作用域。分享給大家供大家參考,具體如下:
JavaScript 作用域
1. JavaScript 以函數(shù)作為作用域
JavaScript: 以函數(shù)做為作用域
function func(){
if(1==1){
var name = 'xsk'
}
console.log(name);
}
func()
2. 函數(shù)作用域在函數(shù)未被調(diào)用之前,已經(jīng)創(chuàng)建
JavaScript:函數(shù)作用域提前創(chuàng)建
function func(){
if(1==1){
var name = 'xsk'
}
console.log(name);
}
3. 函數(shù)的作用域在作用域鏈,并且也是在被調(diào)用之前創(chuàng)建
JavaScript:作用域鏈提前創(chuàng)建
示例一:
xo = "xsk";
function func(){
var xo = "miy"
function inner(){
var xo = "nn"
console.log(xo)
}
inner()
}
func()
// 輸出 nn
示例二:
xo = "xsk";
function func(){
var xo = "miy"
function inner(){
console.log(xo)
}
return inner;
}
var ret = func()
// 輸出miy
// ret 相當(dāng)于 inner()函數(shù)
示例三:
xo = "xsk";
function func(){
var xo = "miy"
function inner(){
console.log(xo)
}
var xo = "tony"
return inner;
}
var ret = func()
ret()
// 輸出tony
注:作用域嵌套作用域被稱為作用域鏈。
注:查找變量會(huì)優(yōu)先在本地作用域找,沒(méi)有在跳到下一級(jí)。
4. 函數(shù)內(nèi)局部變量提前聲明
JavaScript:函數(shù)局部變量提前聲明
示例一:
function func(){
console.log(xxoo);
}
func();
// 報(bào)錯(cuò)
示例二:
function func(){
console.log(xxoo);
var xxoo = 'xsk'
}
func();
// 輸出 undefined
// 函數(shù)執(zhí)行順序,誰(shuí)在前面誰(shuí)執(zhí)行
(1)、JavaScript 當(dāng)創(chuàng)建一個(gè)函數(shù)時(shí),會(huì)自動(dòng)生動(dòng)生成作用域鏈。
(2)、生成作用域的同時(shí)會(huì)找到所有的局部變量提前聲明。(var 變量名)
(3)、為賦值的局部變量默認(rèn)為undefined。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript常用函數(shù)技巧匯總》、《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- js變量以及其作用域詳解
- javascript 函數(shù)及作用域總結(jié)介紹
- JavaScript的變量作用域深入理解
- JSP中 Session和作用域的使用
- 關(guān)于javascript 回調(diào)函數(shù)中變量作用域的討論
- JavaScript中的作用域鏈和閉包
- js作用域及作用域鏈概念理解及使用
- 深入理解Javascript中this的作用域
- javascript從作用域鏈談閉包
- js 函數(shù)的執(zhí)行環(huán)境和作用域鏈的深入解析
- JS中作用域和變量提升(hoisting)的深入理解
- 深入Javascript函數(shù)、遞歸與閉包(執(zhí)行環(huán)境、變量對(duì)象與作用域鏈)使用詳解
相關(guān)文章
-
JavaScript創(chuàng)建命名空間(namespace)的最簡(jiǎn)實(shí)現(xiàn)
JavaScript創(chuàng)建命名空間(namespace)通過(guò)自定義函數(shù)進(jìn)行類型判斷、數(shù)組遍歷、函數(shù)執(zhí)行等相關(guān)操作來(lái)實(shí)現(xiàn)命名空間的功能,需要的朋友可以參考一下 2007-12-12
-
JavaScript實(shí)現(xiàn)頁(yè)面截圖3種解決方案
網(wǎng)頁(yè)截圖是指將網(wǎng)頁(yè)上的內(nèi)容截取下來(lái),并保存為圖片的過(guò)程,下面這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)頁(yè)面截圖的3種解決方案,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下 2024-06-06
-
JS+CSS實(shí)現(xiàn)下拉列表框美化效果(3款)
這篇文章主要介紹了JS+CSS實(shí)現(xiàn)美化的下拉列表框效果,涉及javascript針對(duì)下拉列表框樣式的相關(guān)操作技巧,三款下拉菜單簡(jiǎn)單大方,需要的朋友可以參考下 2015-08-08
-
JavaScript快速實(shí)現(xiàn)一個(gè)顏色選擇器
在做前端界面開發(fā)的時(shí)候,遇到需要改變顏色的需求,就需要使用顏色選擇器。本文就來(lái)用JavaScript編寫一個(gè)簡(jiǎn)單的顏色選擇器,感興趣的可以了解一下 2023-02-02
-
js用正則表達(dá)式來(lái)驗(yàn)證表單(比較齊全的資源)
在學(xué)習(xí)網(wǎng)頁(yè)中的表單驗(yàn)證,順便學(xué)習(xí)下正則表達(dá)式,在網(wǎng)上找了后發(fā)現(xiàn)了一個(gè)比較齊全的資源,稍微進(jìn)行了一下排版,喜歡的朋友可以收藏 2013-11-11
最新評(píng)論
本文實(shí)例講述了JavaScript 作用域。分享給大家供大家參考,具體如下:
JavaScript 作用域
1. JavaScript 以函數(shù)作為作用域
JavaScript: 以函數(shù)做為作用域
function func(){
if(1==1){
var name = 'xsk'
}
console.log(name);
}
func()
2. 函數(shù)作用域在函數(shù)未被調(diào)用之前,已經(jīng)創(chuàng)建
JavaScript:函數(shù)作用域提前創(chuàng)建
function func(){
if(1==1){
var name = 'xsk'
}
console.log(name);
}
3. 函數(shù)的作用域在作用域鏈,并且也是在被調(diào)用之前創(chuàng)建
JavaScript:作用域鏈提前創(chuàng)建
示例一:
xo = "xsk";
function func(){
var xo = "miy"
function inner(){
var xo = "nn"
console.log(xo)
}
inner()
}
func()
// 輸出 nn
示例二:
xo = "xsk";
function func(){
var xo = "miy"
function inner(){
console.log(xo)
}
return inner;
}
var ret = func()
// 輸出miy
// ret 相當(dāng)于 inner()函數(shù)
示例三:
xo = "xsk";
function func(){
var xo = "miy"
function inner(){
console.log(xo)
}
var xo = "tony"
return inner;
}
var ret = func()
ret()
// 輸出tony
注:作用域嵌套作用域被稱為作用域鏈。
注:查找變量會(huì)優(yōu)先在本地作用域找,沒(méi)有在跳到下一級(jí)。
4. 函數(shù)內(nèi)局部變量提前聲明
JavaScript:函數(shù)局部變量提前聲明
示例一:
function func(){
console.log(xxoo);
}
func();
// 報(bào)錯(cuò)
示例二:
function func(){
console.log(xxoo);
var xxoo = 'xsk'
}
func();
// 輸出 undefined
// 函數(shù)執(zhí)行順序,誰(shuí)在前面誰(shuí)執(zhí)行
(1)、JavaScript 當(dāng)創(chuàng)建一個(gè)函數(shù)時(shí),會(huì)自動(dòng)生動(dòng)生成作用域鏈。
(2)、生成作用域的同時(shí)會(huì)找到所有的局部變量提前聲明。(var 變量名)
(3)、為賦值的局部變量默認(rèn)為undefined。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript常用函數(shù)技巧匯總》、《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- js變量以及其作用域詳解
- javascript 函數(shù)及作用域總結(jié)介紹
- JavaScript的變量作用域深入理解
- JSP中 Session和作用域的使用
- 關(guān)于javascript 回調(diào)函數(shù)中變量作用域的討論
- JavaScript中的作用域鏈和閉包
- js作用域及作用域鏈概念理解及使用
- 深入理解Javascript中this的作用域
- javascript從作用域鏈談閉包
- js 函數(shù)的執(zhí)行環(huán)境和作用域鏈的深入解析
- JS中作用域和變量提升(hoisting)的深入理解
- 深入Javascript函數(shù)、遞歸與閉包(執(zhí)行環(huán)境、變量對(duì)象與作用域鏈)使用詳解
相關(guān)文章
JavaScript創(chuàng)建命名空間(namespace)的最簡(jiǎn)實(shí)現(xiàn)
JavaScript創(chuàng)建命名空間(namespace)通過(guò)自定義函數(shù)進(jìn)行類型判斷、數(shù)組遍歷、函數(shù)執(zhí)行等相關(guān)操作來(lái)實(shí)現(xiàn)命名空間的功能,需要的朋友可以參考一下2007-12-12
JavaScript實(shí)現(xiàn)頁(yè)面截圖3種解決方案
網(wǎng)頁(yè)截圖是指將網(wǎng)頁(yè)上的內(nèi)容截取下來(lái),并保存為圖片的過(guò)程,下面這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)頁(yè)面截圖的3種解決方案,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
JS+CSS實(shí)現(xiàn)下拉列表框美化效果(3款)
這篇文章主要介紹了JS+CSS實(shí)現(xiàn)美化的下拉列表框效果,涉及javascript針對(duì)下拉列表框樣式的相關(guān)操作技巧,三款下拉菜單簡(jiǎn)單大方,需要的朋友可以參考下2015-08-08
JavaScript快速實(shí)現(xiàn)一個(gè)顏色選擇器
在做前端界面開發(fā)的時(shí)候,遇到需要改變顏色的需求,就需要使用顏色選擇器。本文就來(lái)用JavaScript編寫一個(gè)簡(jiǎn)單的顏色選擇器,感興趣的可以了解一下2023-02-02
js用正則表達(dá)式來(lái)驗(yàn)證表單(比較齊全的資源)
在學(xué)習(xí)網(wǎng)頁(yè)中的表單驗(yàn)證,順便學(xué)習(xí)下正則表達(dá)式,在網(wǎng)上找了后發(fā)現(xiàn)了一個(gè)比較齊全的資源,稍微進(jìn)行了一下排版,喜歡的朋友可以收藏2013-11-11

