摘要:在我們的程序中有很多變量標識符,我們現(xiàn)在或者將來將使用它。當我們使用時,如果并沒有找到這個變量,在非嚴格模式下,程序會默認幫我們在全局創(chuàng)建一個變量。詞法作用域也就是說,變量的作用域就是他聲明的時候的作用域。
作用域 定義
首先我們來想想作用域是用來干什么的。在我們的程序中有很多變量(標識符identifier),我們現(xiàn)在或者將來將使用它。那么多變量,我咋知道我有沒有聲明或者定義過他呢,他的值又是多少呢,我要如何來找到他呢?作用域就是用來幫助我們尋找變量的。
LHS & RHS & ERRORScope is the set of rules that determines where and how a variable (identifier) can be looked-up
尋找變量有兩種方式:
LHS(left-hand-side):當我們想要給一個變量賦值時。
RHS(Right-hand-side):當我們想要知道一個變量的值的時候。
為什么我們要知道是采用的哪種方式呢?因為不同的方式可能會帶來不同的錯誤。
當我們使用LHS時,如果scope并沒有找到這個變量,在非嚴格模式下,程序會默認幫我們在全局創(chuàng)建一個變量。在嚴格模式下,程序并不會幫我們在全局創(chuàng)建,并且會報錯ReferenceError.
當我們使用RHS時,如果scope并沒有找到這個變量,程序會報錯ReferenceError.
如果我們通過RHS成功找到某個變量,但是想對它做不合法的操作,比如對一個null或者undefined上面求屬性的話,程序會報錯TypeError.
因此,ReferenceError告訴我們作用域查找失敗了,TypeError代表作用域查找是成功的。
詞法作用域也就是說,變量的作用域就是他聲明的時候的作用域。
待續(xù)....
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/90931.html
摘要:回調(diào)傳遞函數(shù)是將函數(shù)當做值并作為參數(shù)傳遞給函數(shù)。這個例子中就是因為事件綁定機制中的傳入了回調(diào)函數(shù),產(chǎn)生了閉包,引用著所在的作用域,所以此處的數(shù)據(jù)無法從內(nèi)存中釋放。 javascript作用域 一門語言需要一套設(shè)計良好的規(guī)則來存儲變量,并且之后可以方便的找到這些變量,這逃規(guī)則被稱為作用域。 這也意味著當我們訪問一個變量的時候,決定這個變量能否訪問到的依據(jù)就是這個作用域。 一、詞法作用域 ...
摘要:引用是從匿名函數(shù)內(nèi)部引用自身的唯一方法,不過,最好的方法是避免使用匿名函數(shù),至少在那些需要引用自身的時候,使用命名函數(shù)或者表達式。 [翻譯]Chapter1 this or that 第一次翻譯,翻譯的不好,已經(jīng)再盡全力s去翻譯了,如果哪里看不明點,請出門左轉(zhuǎn)下邊原文地址 英文原文點擊這里 javascript中最令人困惑的東西就是this關(guān)鍵字,它在每個函數(shù)作用域中都會自動定義的一個...
摘要:運行規(guī)則根據(jù)的運作原理,我們可以看到,的值和調(diào)用棧通過哪些函數(shù)的調(diào)用運行到調(diào)用當前函數(shù)的過程以及如何被調(diào)用有關(guān)。 1. this的誕生 假設(shè)我們有一個speak函數(shù),通過this的運行機制,當使用不同的方法調(diào)用它時,我們可以靈活的輸出不同的name。 var me = {name: me}; function speak() { console.log(this.name); }...
摘要:為什么會存在跨域問題同源策略由于出于安全考慮,瀏覽器規(guī)定不能操作其他域下的頁面,不能接受其他域下的請求不只是,引用非同域下的字體文件,還有引用非同域下的圖片,也被同源策略所約束只要協(xié)議域名端口有一者不同,就被視為非同域。 showImg(https://segmentfault.com/img/remote/1460000017093859?w=1115&h=366); Why 為什么...
摘要:基本概念首先,函數(shù)不能存儲的值,指向哪里,取決于調(diào)用它的對象。如果沒有這個對象,那默認就是調(diào)用非嚴格模式下。也就是說是在運行的時候定義的,不是在綁定的時候定義的。 基本概念 首先,函數(shù)不能存儲this的值,this指向哪里,取決于調(diào)用它的對象。如果沒有這個對象,那默認就是window調(diào)用(非嚴格模式下)。也就是說this是在運行的時候定義的,不是在綁定的時候定義的。 funct...
閱讀 3692·2021-09-30 09:59
閱讀 2356·2021-09-13 10:34
閱讀 588·2019-08-30 12:58
閱讀 1517·2019-08-29 18:42
閱讀 2213·2019-08-26 13:44
閱讀 2933·2019-08-23 18:12
閱讀 3330·2019-08-23 15:10
閱讀 1634·2019-08-23 14:37