一个块语句能够用来管理零个或多个语句。该区块是由一对大括号分隔。express
终止当前的循环,switch,label 语句,使程序跳到下一个语句执行。segmentfault
终止执行当前或标签循环的语句,直接执行下一个迭代循环。数组
空语句用来表示没有语句的状况,尽管 JavaScript 语法指望有语句提供。浏览器
若是指定的条件是 true ,则执行相匹配的一个语句,若为 false,则执行另外一个语句。闭包
语法函数
if (condition) { statements1 } else { statements2 }
condition值为 true 或 false 的表达式this
statement1若是条件值为 true 时执行的语句。可为任意语句,包括更深层的内部 if 语句。要执行多条语句,使用语句块 ({ ... }) 将这些语句分组;若不想执行语句,则使用空语句。debug
statement2若是条件值为 false 且 else 从句存在时执行的语句。可为任意语句,包括语句块和更深层的内部 if 语句。调试
注意:全部不是 undefined,null, 0,NaN, 空字符串 (""), 以及任意对象,包括值为false的Boolean对象, 在条件语句中都为true。code
var b = new Boolean(false); if (b) //表达式的值为true
计算表达式,将子句于表达式的值作匹配,执行与该值相关联的语句。
语法
switch (expression) { case value1: // 当 expression 的结果与 value1 匹配时,今后处开始执行 statements1; [break;] case value2: // 当 expression 的结果与 value2 匹配时,今后处开始执行 statements2; [break;] ... case valueN: // 当 expression 的结果与 valueN 匹配时,今后处开始执行 statementsN; [break;] default: // 若是 expression 与上面的 value 值都不匹配时,执行此处的语句 statements_def; [break;] }
expression一个用来与 case 子语句匹配的表达式。
case expressionN case 子语句,用来与 expression 匹配。
statementsN 若是 expression 匹配其对应的 case 子语句,则执行此处的语句。
statements_def 若是 expression 没有匹配到任何 case 子语句,则会执行此处的语句。
抛出一个用户自定义的异常。
标记一个语句块,并指定一个应该抛出异常的反馈。
声明一个变量,可同时初始化。
语法
var varname1 [= value1 [, varname2 [, varname3 ... [, varnameN]]]];
varnameN 变量名。变量名能够定义为任何合法标识符。
valueN 变量的初始化值。该值能够为任何合法表达式。
注意:
声明变量的做用域限制在其声明位置的上下文中,而非声明变量老是全局的。
function x() { y = 1; // 在严格模式(strict mode)下会抛出ReferenceError异常。 var z = 2; } x(); console.log(y); // 打印"1" 。 console.log(z); // 抛出ReferenceError: z未在x外部声明。
声明变量在任何代码执行前建立,而非声明变量只有在执行赋值操做的时候才会被建立。
console.log(a); // 抛出ReferenceError。 console.log('still going...'); // 永不执行。 var a; console.log(a);// 打印"undefined"或""(不一样浏览器实现不一样)。 console.log('still going...'); // 打印"still going..."。
声明变量是它所在上下文环境的不可配置属性(non-configurable property),非声明变量是可配置的(例如非声明变量能够被删除)。
var a = 1; b = 2; delete this.a; // 在严格模式(strict mode)下抛出TypeError,其余状况下执行失败并没有任何提示。 delete this.b; console.log(a, b); // 抛出ReferenceError。 // 'b'属性已经被删除。
声明一个块级本地变量,能够同时初始化。
声明一个只读的命名常量
声明一个指定参数的函数。
语法
function name([param,[, param,[..., param]]]) { [statements] }
name 函数名
param 传递给函数的参数。一个函数最多有255个参数
statements 函数体
注意:一个被函数声明建立的函数是一个 Function 对象,具备 Function 对象的全部属性、方法和行为。函数也能够被表达式建立(二者区别在于函数声明提高,函数表达式不能提高)
hoisted(); // logs "foo" function hoisted() { console.log("foo"); } //注意 function expressions 不会提高: notHoisted(); // TypeError: notHoisted is not a function var notHoisted = function() { console.log("bar"); };
构造函数使迭代器更容易使用。
指定函数的返回值。
语法
return [[expression]];
expression 被返回的表达式。若是忽略,则返回 undefined。
用途1:中断一个函数的执行(用途2:闭包.默认状况下,函数是返回 undefined 的。想要返回一个其余的值,函数必须经过一个 return 语句指定返回值。关于闭包,参见 深刻浅出Javascript:闭包)
function counter() { for (var count = 1; ; count++) { // 无限循环 console.log(count + "A"); // 执行5次 if (count === 5) { return; } console.log(count + "B"); // 执行4次 } console.log(count + "C"); // 永远不会执行 } counter(); // Output: // 1A // 1B // 2A // 2B // 3A // 3B // 4A // 4B // 5A
声明一个类。
建立一个循环来执行语句,直到该语句条件表达式的值为false。先执行语句,再执行条件表达式,该语句至少会执行一次。
建立一个由3个可选的表达式组成的循环,该循环用括号包裹,分号分割,并在循环体中执行语句。
语法
for ([initialization]; [condition]; [final-expression]) statement
initialization 一个表达式 (包含赋值语句) 或者变量声明。典型地被用于初始化一个计数器。该表达式可使用var关键字声明新的变量。初始化中的变量不是该循环的局部变量,而是与该循环处在一样的做用域中。该表达式的结果无心义。
condition 一个条件表达式被用于肯定每一次循环是否能被执行。若是该表达式的结果为true, 循环体内的语句将被执行。 这个表达式是可选的。若是被忽略,那么就被认为永远为true。若是计算结果为false,那么执行流程将被跳到for语句结构后面的第一条语句。
final-expression 每次循环的最后都要执行的表达式。执行时机是在下一次condition的计算以前。一般被用于更新或者递增计数器变量。
statement 只要condition的结果为true就会被执行的语句。 要在循环体内执行多条语句,使用一个 block 结构 ({ ... }) 来包含要执行的语句。没有任何语句要执行,使用一个 empty 语句 (;)。
注意:for语句的全部的表达式都是可选的。固然能够忽略全部的表达式。一样的,确保使用了 break 语句来退出循环而且你还须要修改(递增)一个变量,以确保可以正常执行break语句。
var i = 0; for (;;) { if (i > 3) break; console.log(i); i++; }
经过指定的变量迭代对象全部属性的值。针对每一个惟一的属性,会执行指定的语句块。
无序遍历对象的可枚举属性。语句针对每一个惟一的属性。
遍历可迭代的对象 (包括arrays, 类数组对象, iterators and generators),对每一个不一样属性的属性,调用一个自定义的有执行语句的迭代钩子。
建立一个循环语句,循环会一直持续到该语句条件表达式的值为false。先执行条件表达式,而后执行语句。
调用可用的调试功能。若是没有调试功能可用,该语句不生效。
用来导出函数,以便这些函数可以被导入到外部模块或其余script中。
用来引入外部的模块或另外一个script中导出的函数。
带标识的语句,与break或continue语句一块儿使用。
拓展一个语句的做用域。