/**
* label标签语句
* - 语法:
* 标签名: 语句
* 如:start: n = 1;
* 上面标签start可以被之后的break或continue语句引用
* - label标签语句一般都要与for语句等循环语句配合使用
* 返回代码中的特定位置
*/
// 声明标签labelBreak1
labelBreak1:
for (var i = 1; i <= 2; i++) {
console.log(`i = ${i} 时:`);
for (var j = 1; j <= 2; j++) {
console.log(`i = ${i}, j = ${j}`);
// 立刻会跳出labelBreak1标签标记的第一层循环
// 结束整个循环
break labelBreak1;
}
}
// 输出:
// i = 1 时:
// i = 1, j = 1
for (var i = 1; i <= 2; i++) {
console.log(`i = ${i} 时:`);
// 声明标签labelBreak2
labelBreak2:
for (var j = 1; j <= 2; j++) {
console.log(`i = ${i}, j = ${j}`);
for (var k = 1; k <= 2; k++) {
console.log(`i = ${i}, j = ${j}, k = ${k}`);
// 立刻会跳出labelBreak2标记的第二层循环,
// 继续正常执行第一层循环
break labelBreak2;
}
}
}
// 输出
// i = 1 时:
// i = 1, j = 1
// i = 1, j = 1, k = 1
// i = 2 时:
// i = 2, j = 1
// i = 2, j = 1, k = 1
// 声明标签labelContinue
labelContinue:
for (var i = 1; i <= 2; i++) {
console.log(`i = ${i} 时:`);
for (var j = 1; j <= 2; j++) {
console.log(`i = ${i}, j = ${j}`);
// 立刻会跳到labelContinue标签标记的第一层循环,此时i会自动加1变成2
// 继续执行第一层循环
continue labelContinue;
}
}
// 输出:
// i = 1 时:
// i = 1, j = 1
// i = 2 时:
// i = 2, j = 1
/**
* with语句
* - 用于设置代码在特定对象中的作用域
* 语法:
* with (表达式) 语句
*/
var name = 'Leo';
// 用with(name)表示创建了一个名字为name的伪对象
// 在代码执行到 length 时,解释程序会检查 length
// 是否是该伪对象 name 的属性,在本例中显然是,因为
// 伪对象 name 是字符串类型的对象,拥有属性 length
// 最后返回该 name 的字符串长度为 3,其实际上与
// name.length 等效
with (name) {
console.log(`name 为 '${name}' 的名字长度为 ${length} 个字符`); // name 为 'Leo' 的名字长度为 3 个字符
}
js的label标签语句与with语句的用法
猜你喜欢
转载自www.cnblogs.com/goujian/p/11807086.html
今日推荐
周排行