1. 程式人生 > >javascript中嚴格模式中的作用域問題

javascript中嚴格模式中的作用域問題

通過一個小例子的對比,來看嚴格模式下與非嚴格模式中作用域的不同表現。

程式碼1:

'use strict';
let foo = 'enen';
if(true){
    let foo = 'heihei';
    console.log(foo); // heihei
}
console.log(foo); // enen

輸出結果:
heihei
enen

程式碼2:

var foo = 'enen';
if(true){
    var foo = 'heihei';
    console.log(foo); // heihei
}
console.log(foo); // heihei

輸出結果:
heihei
heihei

同一個{} 體內,兩種不同結果,說明嚴格模式中塊級作用域內的同名變數不受外部影響。

相關推薦

javascript嚴格模式作用問題

通過一個小例子的對比,來看嚴格模式下與非嚴格模式中作用域的不同表現。 程式碼1: 'use strict'; let foo = 'enen'; if(true){ let fo

javascript 的立即呼叫函式模式、閉包及es6的塊級作用

先來看一個在牛客上看到的面試題: 這裡一開始會以為是不就是隔1秒輸出i的值嗎,最後結果就是輸出0~9 的十個數字呀,真的是太young了。 但是真是擼了一遍程式碼,控制檯輸出刺眼的10個10,what? 這個查了資料是說因為這個函式為每一個i都設定了一個計時器,那麼

JavaScript變量、作用和內存問題(JavaScript高級程序設計第4章)

外部 對象的引用 pan object 揮手 fun 可用內存 限制 argument 一、變量 (1)ECMAScript變量肯能包含兩種不同的數據類型的值:基本類型值和引用類型值。基本類型值指的是簡單的數據段,引用類型值指那些可能由多個值構成的對象。 (2)基本數據類型

javascript的變數與作用

在說變數作用域之前先了解以下幾個概念 塊級作用域:在其他語言中,任何一對花括號內的語句都屬於一個塊,在這個塊中定義的所有變數在程式碼外部都是不可見的,但是在js中,外部可以訪問 { var age=12; } console.log(age); //控

javascript建立變數時作用和記憶體詳解!

<span style="font-size:18px;">// 執行環境:定義了變數或函式有權訪問的其他資料,決定了它們各自的行為; // 在Web瀏覽器中,全域性執行環境=window物件; // 因此所有的全域性變數和函式都是作為window物件的屬性和方法建立的; var box =

js嚴格模式

gpo color UNC div 定義 pre func 文檔 post 我們在js中可以使用"use strict";定義了我們在接下來的文檔輸寫中 將按照嚴格模式進行; function(){ "use strict‘; var a=10;// 在這

Go變量的作用

print 全局 fmt 全局變量 作用域 main UNC 3.1 \n package main import ( "fmt" ) //不同作用域同名變量 var a int //全局變量的聲明 func test01(a float32) { f

JS的塊級作用,var、let、const三者的區別

brush 語句 nbsp light 可見 undefine 函數 true 正常 1. 塊作用域{ } <script type="text/javascript"> { var a = 1; console.log

請簡要敘述下Java修飾符的作用及可見性?

public:修飾的成員可以在任何範圍內直接訪問,只是一種最寬鬆的訪問控制等級。需要注意的,所謂的直接訪問仍需要先建立或獲得一個相應類的物件然後才可以使用”物件名.成員“的方式訪問其屬性或呼叫其方法,但是出於資訊封裝和隱藏的需要一般不提倡把成員宣告為public的,而構造方法和需要外界直

JS 嚴格模式 與 非嚴格模式

一 .      嚴格模式                1.     使

EL表示式關於四個作用物件的注意事項!

主要說明獲取作用域資料獲取這方面的注意事項! 傳統方式獲取作用域資料缺點: 需要匯入java包 需要將型別強制轉換 書寫麻煩容易出現問題 使用EL表示式就可以完美解決傳統方式的缺點: 作用:獲取四個作用物件中的資料,其他宣告的變數不予理會,只獲取下邊四個作用域中

jsp的四個作用,九個內建物件分別是什麼?

九大內建物件: 內建物件(又叫隱含物件),就是在jsp中,不需要建立(由伺服器<容器>來建立),可以直接使用的物件。 物件 含義 類 作用域 request 請求物件 型別

面試題6.jsp的四個作用,九個內建物件分別是什麼?

四個作用域 pageContext, request, session、application 1. 輸出輸入物件:request物件、response物件、out物件 2. 通訊控制物件:pageContext物件、session物件、application物件 3

SpringBean定義、作用、管理問題

一、Bean的定義 <beans…/>元素是Spring配置檔案的根元素,<beans…/>元素可以包含多個<bean…/>子元素,每個<bean…/>元素可以定義一個Bean例項,每一個Bean對應Spring

Python名稱空間與作用使用總結

1 引言 2 名稱空間 2.1 什麼是名稱空間         名稱空間,即Namespace,也成為名稱空間或名字空間,指的是從名字到物件的一個對映關係,類似於字典中的鍵值對,實際上,Python中很多名稱空間的實現用的就是字典。   不同名稱空間是相互獨立

Pythonglobal和nolocal作用的理解

原創:https://www.cnblogs.com/z360519549/p/5172020.html python引用變數的順序: 當前作用域區域性變數-> 閉包函式外的函式中變數->當前模組中的全域性變數->python內建變數 。

講解JSP的四種作用

答:JSP中的四種作用域包括page、request、session和application,具體來說: page代表與一個頁面相關的物件和屬性。 request代表與Web客戶機發出的一個請求相關的物件和屬性。一個請求可能跨越多個頁面,涉及多個Web元件;需要在頁面顯示的

js嚴格模式和非嚴格模式的區別

1、在嚴格模式中禁止使用with語句。 2、在嚴格模式中,所有的變數都要先宣告,如果給一個未宣告的變數、函式、函式引數、catch從句引數或全域性物件的屬性賦值,將會丟擲一個引用錯誤(在非嚴格模式中,這種隱式宣告的全域性變數的方法是給全域性物件新新增一個新屬性)。 3、在嚴格模式

Java修飾符的作用及可見性

java中,針對不同的修飾詞,類及其類中的方法、域都有不同的可見性。以下為針對java中可見性的幾點總結。 1.java中的預設包(這個包是沒有名稱的),對於任何修飾詞來說,其中的內容只能對其包內類為可見。 2.對於java中的非預設包中的內容,各修修飾詞及其

SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY返回插入到標識列的值,但作用不同

SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY 是相似的函式,因為它們都返回插入到標識列中的值。 SELECT @@IDENTITY AS 'IDENTITY'SELECT IDENT_CURRENT('table1') AS 'IDENT