一沛鸵、Iterator
- for...of與for...in的區(qū)別
for...in只能獲取對(duì)象的鍵名磷醋,不能直接獲取鍵值;for...of允許遍歷獲取鍵值
for...in 可以遍歷沒有實(shí)現(xiàn)Iterator的對(duì)象悉默,并輸出鍵名曲梗;for...of不能夠遍歷未實(shí)現(xiàn)Iterator的對(duì)象,可以使用Object.keys()獲取對(duì)象的鍵名數(shù)組然后進(jìn)行遍歷弄跌。var arr = ['a','b','c']; for(let a in arr){ console.info(a); //0,1,2 } for(let a of arr){ console.info(a); //a b c }
var es6 = { edition: 6, committee: "TC39", standard: "ECMA-262" }; for (let e in es6) { console.log(e); } // edition // committee // standard for (let e of es6) { console.log(e); } // TypeError: es6 is not iterable
- javascript中4種遍歷方法
- for循環(huán)
for(let i=0;i<10;i++){ }
- forEach() 特別注意:在forEach中無法使用break,continue,break命令
arry.forEach(function(value,index){ })
- for...in
- for...of
二甲喝、 class
- 可以結(jié)合java中類的概念來理解。
- 特別注意碟绑,this關(guān)鍵字指向問題
class Logger {
printName(name = 'there') {
this.print(`Hello ${name}`);
}
print(text) {
console.log(text);
}
}
const logger = new Logger();
const { printName } = logger;
printName(); // TypeError: Cannot read property 'print' of undefined
printName方法中的this俺猿,默認(rèn)指向Logger類的實(shí)例。但是格仲,如果將這個(gè)方法提取出來單獨(dú)使用押袍,this會(huì)指向該方法運(yùn)行時(shí)所在的環(huán)境,因?yàn)檎也坏絧rint方法而導(dǎo)致報(bào)錯(cuò)凯肋。
三谊惭、Module
-
export default命令
export default 指定模塊的默認(rèn)輸出,本質(zhì)上侮东,export default就是輸出一個(gè)叫做default的變量或方法圈盔,然后系統(tǒng)允許你為它取任意名字。所以悄雅,下面的寫法是有效的驱敲。
// modules.js function add(x, y) { return x * y; } export {add as default}; // 等同于 // export default add; // app.js import { default as xxx } from 'modules'; // 等同于 // import xxx from 'modules';
export