20200304

@xiaojingzhao

Plan

你不知道的 js

Notes

continue

{
  foo: for (var i = 0; i < 4; i++) {
    for (var j = 0; j < 4; j++) {
      if (j === i) {
        continue foo;
      }

      if ((j * i) % 2 === 1) {
        continue;
      }
      console.log(i, j);
    }
  }
}
// 1 0
// 2 0
// 2 1
// 3 0
// 3 2

这两次的 continue 的区别在于,第一个 continue 跳转到了 第一个 for 循环。第二个 continue 跳转到了第二个 for 循环。

执行顺序:

  1. i = 0, j = 0, 第一个 continue -- continue foo,直接到第一个 for 循环,i++。
  2. i = 1, j = 0, i * j 为奇数,到第二个 continue,跳过下面的 console.log,j++。
  3. ...

break

continue 会继续执行循环,break 可以跳出循环, break xxx 可跳出外层循环。

{
  foo: for (var i = 0; i < 4; i++) {
    for (var j = 0; j < 4; j++) {
      if ((j * i) % 2 === 1) {
        // continue;
        break foo;
      }
      console.log(i, j);
    }
  }
}

// 0 0
// 0 1
// 0 2
// 0 3
// 1 0
// 下一步是 1和1 跳出循环

JSON

  1. json 中的 key 必须是双引号。在 js 文件中,一个 json 其实会被处理成一个对象。但是在 JSON 文件中,必须使用双引号来包裹 key。

&& 和 || 的优先级

  1. && 优先级更高
true || (false && false); // true
  1. 短路 -- 如果从左边能得出结果,就忽略右边的操作数。
  2. || 的优先级高于 :?
  3. :? 是右关联
  4. = 右关联

More