跟着文档学js

在培训班学完js之后发现工作中遇到的问题其实之前老师都讲过,但是遇到的时候觉得完全陌生,不知道是不是因为来自他人的传授印象没有那么深刻,写这篇博客的目的是记录这次看文档时觉得眼生的东西

js文档
我是个新手,有的东西理解不到位,请多指教。

2019/05/07

for in & for of

//↓↓↓ 循环数组 ↓↓↓↓
let arr = [1,2,3,4,5]
for(let value in arr){
    console.log(value,typeof (value))//0 1 2 3 4 string
    console.log(arr[value],typeof (arr[value]))//1 2 3 4 5 'number'
}
//↑↑↑↑ for in 循环数组-》value表示下标
for(let value of arr){
    console.log(value,typeof (value))//1 2 3 4 5 'number'
    console.log(arr[value],typeof (arr[value]))//2 3 4 5 ('number') undefined ('undefined')
}
//↑↑↑↑for of 循环数组key表示值

//↓↓↓ 循环对象 ↓↓↓↓
let obj = {
    name:'merchantli',
    age:18,
    sex:'male'
}
for(let key in obj){
    console.log(key)//name age sex
    console.log(obj[key])//merchantli 18 male
}
//↑↑↑↑ for in 循环对象-》key表示键名
for(let key of obj){
    console.log(key)//报错 obj is not iterable :obj是不可迭代的
}

↑↑↑↑总结:for of是迭代:迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。数组是按照下标数字进行迭代,而对象没有下标只有 键名=》值,无法按一定顺序访问,属于不可迭代。
for in是遍历:遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。

你可能感兴趣的:(js基础部分,持续更新)