原文:深入理解javascript原型和閉包(12)——簡介【作用域】

提到作用域,有一句話大家 有js開發經驗者 可能比較熟悉: javascript沒有塊級作用域 。所謂 塊 ,就是大括號 中間的語句。例如if語句: 再比如for語句: 所以,我們在編寫代碼的時候,不要在 塊 里面聲明變量,要在代碼的一開始就聲明好了。以避免發生歧義。如: 其實,你光知道 javascript沒有塊級作用域 是完全不夠的,你需要知道的是 javascript除了全局作用域之外,只有 ...

2014-09-24 17:10 9 41389 推薦指數:

查看詳情

深入理解javascript原型閉包(18)——補充:上下文環境和作用域的關系

本系列用了大量的篇幅講解了上下文環境和作用域,有些人反映這兩個是一回兒事。本文就用一個小例子來說明一下,作用域和上下文環境絕對不是一回事兒。 再說明之前,咱們先用簡單的語言來概括一下這兩個的區別。 00 上下文環境: 可以理解為一個看不見摸不着的對象(有若干個屬性),雖然看不見摸不着 ...

Tue Sep 30 02:32:00 CST 2014 44 22297
深入理解javascript原型閉包(14)——從【自由變量】到【作用域鏈】

先解釋一下什么是“自由變量”。 在A作用域中使用的變量x,卻沒有在A作用域中聲明(即在其他作用域中聲明的),對於A作用域來說,x就是一個自由變量。如下圖 如上程序中,在調用fn()函數時,函數體中第6行。取b的值就直接可以在fn作用域中取,因為b就是在這里定義的。而取x的值時,就需要到另一 ...

Thu Sep 25 22:50:00 CST 2014 25 47357
深入理解javascript原型閉包(13)-【作用域】和【上下文環境】

上文簡單介紹了作用域,本文把作用域和上下文環境結合起來說一下,會理解的更深一些。 如上圖,我們在上文中已經介紹了,除了全局作用域之外,每個函數都會創建自己的作用域作用域在函數定義時就已經確定了。而不是在函數調用時確定。 下面我們將按照程序執行的順序,一步一步把各個上下文環境 ...

Thu Sep 25 16:18:00 CST 2014 20 42116
Javascript深入作用域閉包

相信絕大多數同學都聽過閉包這個概念,但閉包具體是什么估計很少有人能夠說的很詳細。說實話閉包在我們平時開發中應該是很常見的,並且在前端面試中閉包也是常見的重要考點,在學習閉包之前我們先來看看作用域作用域鏈,因為這是閉包的關鍵。 作用域 簡單來說,作用域是指程序中定義變量的區域 ...

Wed Oct 20 23:49:00 CST 2021 5 263
深入理解javascript原型閉包(完結)

說明:   該教程繞開了javascript的一些基本的語法知識,直接講解javascript中最難理解的兩個部分,也是和其他主流面向對象語言區別最大的兩個部分——原型閉包,當然,肯定少不了原型鏈和作用域鏈。幫你揭開javascript最神秘的面紗。   為什么要偏偏要講這兩個知識點 ...

Thu Sep 18 04:35:00 CST 2014 61 208589
深入理解javascript原型閉包(5)——instanceof

又介紹一個老朋友——instanceof。 對於值類型,你可以通過typeof判斷,string/number/boolean都很清楚,但是typeof在判斷到引用類型的時候,返回值只有object ...

Fri Sep 19 00:38:00 CST 2014 48 62032
深入理解javascript原型閉包(10)——this

接着上一節講的話,應該輪到“執行上下文棧”了,但是這里不得不插入一節,把this說一下。因為this很重要,js的面試題如果不出幾個與this有關的,那出題者都不合格。 其實,this的取值, ...

Tue Sep 23 22:57:00 CST 2014 46 57932
深入理解javascript原型閉包(6)——繼承

為何用“繼承”為標題,而不用“原型鏈”? 原型鏈如果解釋清楚了很容易理解,不會與常用的java/C#產生混淆。而“繼承”確實常用面向對象語言中最基本的概念,但是java中的繼承與javascript中的繼承又完全是兩回事兒。因此,這里把“繼承”着重拿出來,就為了體現 ...

Fri Sep 19 04:17:00 CST 2014 26 58959
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM