javascript函式讀取變數作用域簡單介紹
關於作用域的基本概念可以參閱javascript作用域詳解一章節。
但是下面再介紹一個細節,可能不少的朋友都沒有注意到,因為看到不少人在提問。
先看一個程式碼例項:
[JavaScript] 純文字檢視 複製程式碼var num=10; function foo(){ console.log(num); } function func(){ var num=100; foo(); } func();
上面的輸出結果是10,可能很多人認為是100。
他們的思路是:foo()函式中沒有變數num的定義,所以向上查詢,於是在func函式中找到。
其實並不是這麼回事,foo()函式要去建立這個函式的作用域取值,而不是在呼叫它的父作用域。
相關文章
- javascript變數作用於簡單介紹JavaScript變數
- javascript作用域簡單介紹JavaScript
- js 函式作用域鏈簡單介紹JS函式
- javascript作用域和作用域鏈簡單介紹JavaScript
- javascript函式和變數宣告提前簡單介紹JavaScript函式變數
- javascript 變數簡單介紹JavaScript變數
- javascript匿名函式簡單介紹JavaScript函式
- javascript變數宣告簡單介紹JavaScript變數
- javascript變數汙染簡單介紹JavaScript變數
- javascript基礎(函式與方法的區別,變數作用域,變數和函式的宣告提前,函式作用域)(十五)JavaScript函式變數
- javascript call()函式用法簡單介紹JavaScript函式
- javascript trim()函式用法簡單介紹JavaScript函式
- javascript高階函式簡單介紹JavaScript函式
- javascript函式呼叫方式簡單介紹JavaScript函式
- javascript變數宣告提升簡單介紹JavaScript變數
- 函式(三)作用域之變數作用域、函式巢狀中區域性函式作用域、預設值引數作用域函式變數巢狀
- python函式作用域簡介Python函式
- javascript定時器函式簡單介紹JavaScript定時器函式
- javascript呼叫函式的方式簡單介紹JavaScript函式
- javascript匿名函式的使用簡單介紹JavaScript函式
- Linux Shell 自定義函式(定義、返回值、變數作用域)介紹Linux函式變數
- javascript匿名函式的優點簡單介紹JavaScript函式
- new運算子作用域建構函式建立物件的過程簡單介紹函式物件
- Python 函式和變數作用域Python函式變數
- javascript建立、讀取或者刪除cookie簡單介紹JavaScriptCookie
- javascript將浮點數數變為整數簡單介紹JavaScript
- javascript函式宣告兩種主要方式簡單介紹JavaScript函式
- javascript事件處理函式繫結簡單介紹JavaScript事件函式
- javascript陣列的map()函式用法簡單介紹JavaScript陣列函式
- javascript建構函式的繼承簡單介紹JavaScript函式繼承
- javascript非建構函式繼承簡單介紹JavaScript函式繼承
- javascript函數語言程式設計簡單介紹JavaScript函數程式設計
- javascript變數物件函式呼叫棧作用域閉包等細解!JavaScript變數物件函式
- javascript鏈式呼叫簡單介紹JavaScript
- 函式表示式和函式宣告簡單介紹函式
- javascript動態改變元素css樣式簡單介紹JavaScriptCSS
- 簡單介紹nginx 變數使用Nginx變數
- javascript取模運算簡單介紹JavaScript