你不知道的JavaScript

2018-05-22  本文已影响0人  yyggfffg

变量和值

原生函数

  1. Array()

类型转换

1.显式类型转换

2.隐式类型转换

3.宽松相等和严格相等

语句

1 语句的结果值

2 表达式的副作用

function foo() {
a = a + 1;
}
var a = 1;
foo(); // 结果值:undefined。副作用:a的值被改变

3 上下文规则

{
foo: bar()
}

foo: bar()叫作“标签语句”,foo是语句bar()的标签。

foo: for (var i=0; i<4; i++) {
for (var j=0; j<4; j++) {
// 如果j和i相等,继续外层循环
if (j == i) {
// 跳转到foo的下一个循环
continue foo;
}
// 跳过奇数结果
if ((j * i) % 2 == 1) {
// 继续内层循环(没有标签的)
continue;
}
console.log( i, j );
}
}

contine foo 并不是指“跳转到标签foo 所在位置继续执行”,而是“执行
foo 循环的下一轮循环”。所以这里的foo 并非goto。

foo: for (var i=0; i<4; i++) {
for (var j=0; j<4; j++) {
if ((i * j) >= 3) {
console.log( "stopping!", i, j );
break foo;
}
console.log( i, j );
}
}

break foo 不是指“跳转到标签foo 所在位置继续执行”,而是“跳出标签
foo 所在的循环/ 代码块,继续执行后面的代码”。

上一篇 下一篇

猜你喜欢

热点阅读