p9
使用 . 或 [ ]访问对象的属性
let book = {
topic:"JavaScript",
edition:7,
contents:{}
}
book.topic
book["edition"]
使用 ?.(ES2020) 条件式访问属性
book.contents?.ch01?.sect1
// =>undefined:book.contents没有ch01这个属性
p13
开始看这一串代码有点懵,以为primes是一串特定的数组,后来才发现作者可能省略给primes赋值了。
let primes = [2,3,5,7,11]
function sum(array){
let sum = 0
for(let x of array){
sum += x
}
return sum;
}
console.log(sum(primes));
// =》28:sum是前5个素数之和(2+3+5+7+11)
区分for…in和for…of
使用for…in遍历数组,得到的是数组下标
var a = [1,2,3,4]
for(let i in a){
console.log(i)
} // 0,1,2,3
使用for…of遍历数组,得到的是数组中的每一项
var a = [1,2,3,4]
for(let i of a){
console.log(i)
} // 1,2,3,4
for…in 循环主要是为了遍历对象而生,不适用于遍历数组
for…of 循环可以用来遍历数组、类数组对象,字符串、Set、Map 以及 Generator 对象
p23
有的程序员喜欢在所有这种语句前面都防御性地添加一个分号,这样即使它前面语句被修改,删除了之前末尾的分号,也不会影响当前语句:
let x = 0 // 这里省略分号
;[x,x+1,x+2].forEach(console.log)// 防御:保证这条语句独立