while

while 语句可以在某个条件表达式为真的前提下,循环执行指定的一段代码,直到那个表达式不为真时结束循环。

语法

while (condition)
  statement
condition
条件表达式,在每次循环前被求值。如果求值为真,statement就会被执行。如果求值为假,则跳出while循环执行后面的语句。
statement
只要条件表达式求值为真,该语句就会一直被执行。要在循环中执行多条语句,可以使用块语句({ ... })包住多条语句。
注意:使用break语句在condition计算结果为真之前停止循环。

示例

下面的 while 循环会一直循环若干次,直到 n 等于 3

var n = 0;
var x = 0;

while (n < 3) {
  n++;
  x += n;
}

在每次循环中,n 都会自增 1,然后再把 n 加到 x 上。因此,在每轮循环结束后,xn 的值分别是:

  • 第一轮后:n = 1,x = 1
  • 第二轮后:n = 2,x = 3
  • 第三轮后:n = 3,x = 6

当完成第三轮循环后,条件表达式n< 3 不再为真,因此循环终止。

规范

规范 状态 备注
ECMAScript (ECMA-262)
while statement
Living Standard
ECMAScript 2015 (6th Edition, ECMA-262)
while statement
Standard
ECMAScript 5.1 (ECMA-262)
while statement
Standard
ECMAScript 3rd Edition (ECMA-262)
while statement
Standard
ECMAScript 1st Edition (ECMA-262)
while statement
Standard Initial definition

浏览器兼容性

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
whileChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100

Legend

Full support  
Full support

参见