摘要:和命令命令是在它所在的代碼塊有效,它屬于塊級作用域,新增。只有全局作用域和函數作用域。
let和const命令
let命令是在它所在的代碼塊有效,它屬于塊級作用域,es6新增。es5只有全局作用域和函數作用域。let命令存在暫時性死區(TDZ),即在申明前使用就會報錯,不存在變量提升
console.log(a); // 報錯 let a = 111;
==let不允許在相同作用域中,重復申明同一變量==
塊級作用域和函數聲明es6中明確規定在塊級作用域中可以聲明函數,在塊級作用域中,函數聲明語句的行為類似于let,在塊級作用域外不可引用。以下是es6中對函數聲明做的規定
允許在塊級作用域內聲明函數。
函數聲明類似于var,即會提升到全局作用域或函數作用域的頭部。
同時,函數聲明還會提升到所在的塊級作用域的頭部。
看下面一段代碼
// ES6 環境 function f() { console.log("I am outside!"); } (function () { if (false) { function f() { console.log("I am inside!"); } } f(); }()); // Uncaught TypeError: f is not a function
會報錯,應該塊級作用域中的函數聲明類似于var,會被提升到塊級作用域頭部,下面是實際運行代碼
//ES6 環境 function f() { console.log("I am outside!"); } (function () { var f = undefined; if (false) { function f() { console.log("I am inside!"); } } f(); }()); // Uncaught TypeError: f is not a function
所以要避免在塊級作用域中聲明函數,如果必須的話使用函數表達式
const命令const 聲明一個只讀的常量,聲明后不可改變,需要注意的是const只是保證聲明的變量指向的那塊內存空間保存的數據不能改動,對于復合型數據(對象和數組),變量指向的內存地址,保存的是一個指向實際數據的指針,const 只能保證這個指針是固定的,指針指向的數據結構是可以變的,因此對象可以添加屬性,數組可以添加數據,但是他們不能賦給另一個變量
const foo = {}; // 為 foo 添加一個屬性,可以成功 foo.prop = 123; foo.prop // 123 // 將 foo 指向另一個對象,就會報錯 foo = {}; // TypeError: "foo" is read-only
es6中有六中聲明變量的方法:var 命令和function 命令,let 和const ,還有import 命令和class命令
es5中頂層對象和全局變量是掛鉤的,全局聲明的變量是頂層對象的屬性,es6中let,const,class命令聲明的全局變量不在是全局變量的屬性
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/103359.html
摘要:命令用來聲明變量,它的用法類似,但是命令聲明的變量只在所在的代碼塊中有效。不允許重復聲明不允許在同一作用域聲明兩個相同的變量。對于內部的數據結構的變化是無法控制的。 let命令 用來聲明變量,它的用法類似var,但是let命令聲明的變量只在所在的代碼塊中有效。 { var a = 1; let b = 2; } console.log(a); // 1 con...
摘要:類似于數組,但是中不存在重復元素。可以接受一個數組或者其他具有接口的數據結構作為參數從上面的代碼可以看出有去重的功能。去重還有另一個方法將數據結構的數據轉換成數組。清除實例的指定成員。返回一個布爾值,表示某個值是否在實例之中。 Set Set類似于數組,但是Set中不存在重復元素。Set可以接受一個數組(或者其他具有itarable接口的數據結構)作為參數 const set = ne...
摘要:數組的解構賦值規定允許按照一定模式,從數組和對象中提取值對變量進行賦值,我們稱之為解構。的規則是,只要有可能導致解構的歧義,就不得使用圓括號。 數組的解構賦值 ES6規定:允許按照一定模式,從數組和對象中提取值對變量進行賦值,我們稱之為解構。以前賦值只能直接指定值 let a = 1; let b = 2; let c = 3; ES6允許以下這種做法 let [a, b, c] = ...
摘要:與字符編碼通過指定的編碼進制,可以在與普通的字符串之間轉換。中文中文通常用于實例數組的排序。有點像方法合并截斷為的長度,缺少的部分會用補充,是一個返回,是一個支持的字符編碼返回,創建并返回一個形式的迭代器,如果與具有完全相同的字節就返回 Buffer 可以在TCP流或者文件系統操作等場景中處理二進制數據流。 Buffer實例類似于整數數組,但是Buffer大小固定、且在V8堆外分配物理...
摘要:核心模塊學習之何為在引入之前,沒有能讀取和操作二進制數據流的機制,作為引入,以便能和網絡流文件流等進行交互。返回值寫入的實際大小,沒有足夠的空間保存,只會寫入一部分。返回值實際存入的字節數。參考文章一進階核心模塊常用使用總結 node 核心模塊學習之Buffer 何為 Buffer 在ES6引入 TypeArray 之前,JS沒有能讀取和操作二進制數據流的機制,Buffer 作為 No...
閱讀 2028·2023-04-26 01:33
閱讀 1660·2023-04-26 00:52
閱讀 1035·2021-11-18 13:14
閱讀 5394·2021-09-26 10:18
閱讀 2901·2021-09-22 15:52
閱讀 1488·2019-08-29 17:15
閱讀 3017·2019-08-29 16:11
閱讀 1039·2019-08-29 16:11