摘要:聲明變量功能和類似,卻去掉了很多身上的壞毛病塊狀作用域如果在瀏覽器環境執行的時候不會往全局變量上面綁定,防止全局變量的污染直接結果相同作用域中不允許重復聲明相同變量執行結果拋出語法錯誤經典的例子輸出,一不小心就污染了全局環境使用,就不會有這
聲明變量 let
功能和var類似,卻去掉了很多var身上的壞毛病
塊狀作用域
{ var a = "123"; } { let b = "456" } // 如果在瀏覽器環境執行的時候 console.log(a);// "123" console.log(b);// b is not defined
不會往全局變量上面綁定,防止全局變量的污染
var a = "123"; let b = "456"; // 直接結果 console.log(window.a);// "123" console.log(window.b);// undefined;
相同作用域中不允許重復聲明相同變量
let a = "123"; let a = "456"; // 執行結果 console.log(a);// 拋出語法錯誤:SyntaxError: Identifier "me" has already been declared
經典的例子
for(var i=1;i<10;i++){ } console.log(i); // 輸出10,一不小心就污染了全局環境 // 使用let,就不會有這個問題 for(let j=1;j<10;j++){ } console.log(j); // 拋出引用異常:ReferenceError: j is not defined聲明常量 const
在es6之前并沒有很好的辦法進行常量的聲明,常量:這是一個只讀的變量,es6中給出了const這個特性,專門用來處理這類問題
const a = "123"; a = "456"; // 拋出異常 SyntaxError: "a" is read-only
需要注意下,常量的對象,其中的屬性是可以被改變的
const obj = { name:"hello" } obj.name = "hello 2"; // 這個地方是合法的for...of
這es6提供的一個新的迭代器,功能類似for...in,只是前者返回的是value,而后者返回的是腳標
let data = ["a","b","c"]; for(let i in data){ console.log(i);// 輸出 0,1,2 } for(let j of data){ console.log(j);// 輸出 a,b,c }代理 Proxies
這是es6提供的一個強大的特性,可以通過非侵入的方式,修改對象的默認行為
var obj = { name:"dog" }; var handler = { get:function(target,key){ return target[key].replace("dog","cat"); } }; // 設置代理 var proxy = new Proxy(obj,handler); console.log(proxy.name);
可以進行代理的屬性還有很多:
var handler = { get:..., set:..., has:..., deleteProperty:..., apply:..., construct:..., getOwnPropertyDescriptor:..., defineProperty:..., getPrototypeOf:..., setPrototypeOf:..., enumerate:..., ownKeys:..., preventExtensions:..., isExtensible:... }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/90553.html
摘要:前三個是為了解決變量聲明定義的問題,而最后一個則影響最大。下文只介紹前三個特性。這是因為的的不支持塊級作用域,變量僅僅被限制到函數作用域內。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代碼: https://github.com/RobinQu/P...
摘要:前三個是為了解決變量聲明定義的問題,而最后一個則影響最大。下文只介紹前三個特性。這是因為的的不支持塊級作用域,變量僅僅被限制到函數作用域內。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代碼: https://github.com/RobinQu/P...
摘要:前三個是為了解決變量聲明定義的問題,而最后一個則影響最大。下文只介紹前三個特性。這是因為的的不支持塊級作用域,變量僅僅被限制到函數作用域內。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代碼: https://github.com/RobinQu/P...
摘要:字面上是生成器的意思,在里是迭代器生成器,用于生成一個迭代器對象。當執行的時候,并不執行函數體,而是返回一個迭代器。迭代器具有方法,每次調用方法,函數就執行到語句的地方。也有觀點極力反對,認為隱藏了本身原型鏈的語言特性,使其更難理解。 本文為 ES6 系列的第一篇。旨在給新同學一些指引,帶大家走近 ES6 新特性。簡要介紹: 什么是 ES6 它有哪些明星特性 它可以運行在哪些環境 ...
摘要:年月,的創造者公司,決定將提交給國際標準化組織,希望這種語言能夠成為國際標準。這表示外層代碼塊不受內層代碼塊的影響。也可以運用于函數及其他文中就簡單介紹這么多,想更加了解新特性的可以自尋查看一下阮一峰的一本入門 ES6新特性 最近在項目中遇到了很多ES6的語法,遇到了不少坑坑洼洼,因此,在這里就簡單介紹一下ES6中的一些新特性 如果想真正的了解ES6和ES5有什么不同,這里推薦看一下...
摘要:示例運行函數彈出彈出函數接收參數,返回值。其中,返回一個對象,是的返回值,代表函數是否執行完成。 ES6特性介紹(下) ES6新的標準,新的語法特征:1、變量/賦值2、函數3、數組/json4、字符串5、面向對象6、Promise7、generator8、ES7:async/await 《【Web全棧課程二】ES6特性介紹(上)》見:https://segmentfault.com/a...
閱讀 3940·2021-10-09 09:43
閱讀 2872·2021-10-08 10:05
閱讀 2734·2021-09-08 10:44
閱讀 883·2019-08-30 15:52
閱讀 2810·2019-08-26 17:01
閱讀 3017·2019-08-26 13:54
閱讀 1651·2019-08-26 10:48
閱讀 807·2019-08-23 14:41