摘要:變量的作用域鏈一個變量的查找找這個變量最近定義的地方找到了就不會再繼續向外找了下面用代碼實例說明實例實例還是實例局部變量的誤解循環由于的變量作用域實際上是函數內部,我們在循環等語句塊中是無法定義具有局部作用域的變量的條件語句為了解決塊級作用
變量的作用域鏈
一個變量的查找,找這個變量最近定義var的地方,找到了就不會再繼續向外找了.
下面用代碼實例說明:
實例1:
var a = 10; function show(){ console.log(a); } show(); // 10
實例2
var a = 10; function show(){ console.log(a); a = 20; } show(); // 還是10
實例3
for循環
由于JavaScript的變量作用域實際上是函數內部,我們在for循環等語句塊中是無法定義具有局部作用域的變量的:
function foo() { for (var i= 0; i < 100; i++) { // } i += 100; // document.write(i); // 200 } foo();
if 條件語句
if(true){ var i = 100; } console.log(i); // 100
為了解決塊級作用域,ES6引入了新的關鍵字let,用let替代var可以申明一個塊級作用域的變量
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78548.html
摘要:一看這二逼就是周杰倫的死忠粉看看控制臺輸出,確實沒錯就是對象。從根本上來說,作用域是基于函數的,而執行環境是基于對象的例如全局執行環境即全局對象。全局對象全局屬性和函數可用于所有內建的對象。全局對象只是一個對象,而不是類。 覺得本人寫的不算很爛的話,可以登錄關注一下我的GitHub博客,博客會堅持寫下去。 今天同學去面試,做了兩道面試題,全部做錯了,發過來給我看,我一眼就看出來了,因為...
摘要:下面我們就羅列閉包的幾個常見問題,從回答問題的角度來理解和定義你們心中的閉包。函數可以通過作用域鏈相互關聯起來,函數內部的變量可以保存在其他函數作用域內,這種特性在計算機科學文獻中稱為閉包。 寫這篇文章之前,我對閉包的概念及原理模糊不清,一直以來都是以通俗的外層函數包裹內層....來欺騙自己。并沒有說這種說法的對與錯,我只是不想擁有從眾心理或者也可以說如果我們說出更好更低層的東西,逼格...
摘要:我們再來看一下第一段代碼小紅小黑腳本出錯腳本出錯在這段代碼中變量與函數,都擁有局部作用域。作用域鏈的最前端,始終都是當前執行代碼所在的作用域的變量對象。 個人博客原址 無論什么語言中,作用域都是一個十分重要的概念,在JavaScript中也不例外,作用域定義了變量或者函數有權訪問的范圍,決定了它們各自的行為。要理解JavaScript中的作用域首先就要知道:在let出現之前,JS中變...
摘要:這里一共說了三種作用域,其實可以說是兩種一種是全局作用域,而是局部作用域函數作用域塊級作用域,塊級作用域概念又包括了函數作用域。 作用域: 變量所在的上下文,指的是變量在哪些地方可以訪問 對于JavaScript來說有全局作用域但是沒有塊級作用域,在ES6中引入了關鍵字let可以生成塊作用域.見以下代碼: var value = true if (value) { var age ...
摘要:所以覺得把這個執行的詳細過程整理一下,幫助更好的理解。類似的語法報錯的如下圖所示三預編譯階段代碼塊通過語法分析階段之后,語法都正確的下回進入預編譯階段。另開出新文章詳細分析,主要介紹執行階段中的同步任務執行和異步任務執行機制事件循環。 一、概述 js是一種非常靈活的語言,理解js引擎的執行過程對于我們學習js是非常有必要的。看了很多這方便文章,大多數是講的是事件循環(event loo...
閱讀 472·2023-04-25 17:26
閱讀 1495·2021-08-05 09:58
閱讀 1959·2019-08-30 13:17
閱讀 944·2019-08-28 17:52
閱讀 1061·2019-08-26 18:27
閱讀 1413·2019-08-26 14:05
閱讀 3608·2019-08-26 14:05
閱讀 1586·2019-08-26 10:45