摘要:注意不再是安全的操作不允許重復聲明塊級作用域匿名函數寫法塊級作用域寫法的嚴格模式規定,函數只能在頂層作用域和函數內聲明,其他情況比如代碼塊循環代碼塊的聲明都會報錯。
塊級作用域
for(var i = 0; i < 10; i++){} console.log(i); //10 for(let j = 0; j < 10; j++){} console.log(j); //"ReferenceError: j is not defined
疑問: https://segmentfault.com/q/1010000004643248
不存在變量提升console.log(a); // 輸出undefined console.log(b); // 報錯ReferenceError console.log(c); // 報錯ReferenceError var a = 2; let b = 2;
注意區別undefined和ReferenceError
暫時性死區(TDZ)只要進入當前塊級作用域,所使用的變量已經存在了,但在聲明之前都屬于死區,不可進行操作。
注意: typeof不再是100%安全的操作
typeof x; // ReferenceError typeof y // undefined let x;不允許重復聲明
let x = 1; let x; // "SyntaxError: Identifier "x" has already been declared var y = 2; var y = 3; // y = 3塊級作用域
// 匿名函數寫法 (function () { var tmp = ...; ... }()); // 塊級作用域寫法 { let tmp = ...; ... }
ES5的嚴格模式規定,函數只能在頂層作用域和函數內聲明,其他情況(比如if代碼塊、循環代碼塊)的聲明都會報錯。
// ES5 "use strict"; if (true) { function f() {} // 報錯 }
ES6由于引入了塊級作用域,這種情況可以理解成函數在塊級作用域內聲明,因此不報錯,但是構成區塊的大括號不能少
// 報錯 "use strict"; if (true) function f() {}聲明的全局變量不再是window的屬性
"use strict"; var a = 1; console.log(window.a) // 1 let b = 1; console.log(window.b) // undefined
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/79008.html
摘要:但是一直沒有在語言層面支持模塊,直到的出現。相信在不久的將來,的模塊一定會全面取代和。的模塊提供了個新的語法,分別是和。就是模塊用來對外暴露數據的接口,具體用法如下。 本文同步自我得博客:http://www.joeray61.com 簡介 在當今的Javascript程序中,模塊的作用不言而喻,目前廣泛應用的主要有AMD(瀏覽器端)和CommonJS(服務器端)。但是Javascri...
摘要:消除字符串頭部空格消除尾部空格從頭部補全字符串從尾部補全字符串 let和const var關鍵字定義變量的特點: 可以重復定義 不能定義常量 不支持塊級作用域 let的特點 不可以重復定義 變量不能提升,在變量定義之前,不能使用 在大括號當中定義的變量(塊級作用域中),在作用域外無法訪問 解決一些ES5當中需要閉包實現的功能,比如:每隔1秒循環輸出一個當前的值 const的特點...
摘要:一新增了命令和一樣都是用來聲明標量,但所聲明的變量只在聲明的代碼塊內及聲明之后有效命令適合在循環中使用在循環內有效在全局內有效命令暫時性死區大括號中的使用了聲明,所以在大括號中暫時只能在聲明之后有效不允許在同一作用域內重復聲明變量,因此不能 一、ES6新增了let命令 let 和 var 一樣都是用來聲明標量,但let所聲明的變量只在【聲明的代碼塊內】及【聲明之后】有效 { c...
摘要:另外對于已經聲明的變量進行解構賦值時,要非常小心。因此在行首加,將其強制轉化為表達式執行。由于和無法轉為對象,所以對它們進行解構賦值,都會報錯。 let和const let和const是es6新增的兩個變量聲明關鍵字,與var的不同點在于: (1)let和const都是塊級作用域,在{}內有效,這點在for循環中非常有用,只在循環體內有效。var為函數作用域。 (2)使用let和con...
閱讀 1387·2023-04-25 16:45
閱讀 1926·2021-11-17 09:33
閱讀 2316·2021-09-27 14:04
閱讀 919·2019-08-30 15:44
閱讀 2640·2019-08-30 14:24
閱讀 3423·2019-08-30 13:59
閱讀 1696·2019-08-29 17:00
閱讀 895·2019-08-29 15:33