function assert(condition, message) {
if (!condition) {
throw new Error(message || "断言失败");
}
}
var num = 0;
outPoint: for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (i == 5 && j == 5) {
break outPoint; }
num++;
}
}
console.log(num); assert(num === 55, "break 标签测试失败");
var num = 0;
outPoint: for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (i == 5 && j == 5) {
continue outPoint;
}
num++;
}
}
console.log(num); assert(num === 95, "continue 标签测试失败");
var a = [1, 2, 3, 4, 5];
var theValue = 3;
var sum = 0;
var i;
for (i = 0; i < a.length; i++) {
if (a[i] == theValue) {
break;
}
sum += a[i];
}
console.log(sum); assert(sum === 3, "break 测试失败");
var x = 0;
var z = 0;
labelCancelLoops: while (true) {
x += 1;
z = 1;
while (true) {
z += 1;
if (z === 10 && x === 10) {
break labelCancelLoops;
} else if (z === 10) {
break;
}
}
}
console.log("x 的最终值是:" + x); console.log("z 的最终值是:" + z); assert(x === 10, "break 标签测试失败");
assert(z === 10, "break 标签测试失败");
var i = 0;
var n = 0;
var out = "";
while (i < 5) {
i++;
if (i == 3) {
continue;
}
n += i;
console.log(n);
out += n + ",";
}
console.log("输出结果为:" + out);
assert(out === "1,3,7,12,", "continue 测试失败");
var i = 0;
var n = 0;
var out = "";
while (i < 5) {
i++;
if (i == 3) {
}
n += i;
console.log(n);
out += n + ",";
}
console.log("输出结果为:" + out);
assert(out === "1,3,6,10,15,", "continue 测试失败");
var i = 0;
var j = 10;
checkiandj: while (i < 4) {
console.log("in checkiandj, i =", i);
i += 1;
checkj: while (j > 4) {
console.log("in checkj, j =", j);
j -= 1;
if (j % 2 == 0) {
continue checkj;
}
console.log(j + " 是奇数。");
}
console.log("i = " + i);
console.log("j = " + j);
}
function dump_props(obj, obj_name) {
var result = "";
for (var i in obj) {
result += obj_name + "." + i + " = " + obj[i] + "<br>";
}
result += "<hr>";
return result;
}
var person = { name: "Nicholas", age: 29, job: "Software Engineer", city: "Seattle" };
var result = dump_props(person, "person");
console.log(result);
assert(
result.includes("person.name = Nicholas") && result.includes("person.age = 29"),
"for...in 测试失败"
);
let arr = [3, 5, 7];
arr.foo = "hello";
var out = "";
for (let i in arr) {
console.log(i); out += i + ",";
}
console.log("输出结果为:" + out);
assert(out.includes("foo"), "for...in 测试失败");
var out = "";
for (let i of arr) {
console.log(i); out += i + ",";
}
console.log("输出结果为:" + out);
assert(out === "3,5,7,", "for...of 测试失败");