总结:

  1. do-while 语句是一种后测试循环语句,即循环体中的代码执行后才会对退出条件进行求值。换句 话说,循环体内的代码至少执行一次
  2. while 语句是一种先测试循环语句,即先检测退出条件,再执行循环体内的代码。因此,while 循环体内的代码有可能不会执行。
  3. 无法通过 while 循环实现的逻辑,同样也无法使用 for 循环实现。
  4. 初始化定义的迭代器变 量在循环执行完成后几乎不可能再用到了;最清晰的写法是使用 let 声明迭代器变量,这样就可 以将这个变量的作用域限定在循环中。
  5. for-in 语句,for (const propName in window) { document.write(propName); } 为了确保这个局部变量不被修改,推荐使用 const。所有可枚举的属性都会返回一次,但返回的顺序可能会因浏览器而异;如果 for-in 循环要迭代的变量是 null 或 undefined,则不执行循环体。
  6. 严格模式不允许使用 with 语句,否则会抛出错误。
  7. 严格模式对函数也有一些限制:1.函数不能以 eval 或 arguments 作为名称;2.函数的参数不能叫 eval 或 arguments;3.两个命名参数不能拥有同一个名称。违反上述规则,则会导致语法错误,代码也不会执行。

很少用到的知识:

标签语句, 标签语句的 典型应用场景是嵌套循环。