标签函数
标签函数其实就是普通的常规函数,特殊的是我们可以通过前缀的模板字面量来应用自定义行为。
let a = 1;
let b = 2;
function tagFunction(strings, aVal, bVal, sumVal) {
console.log(strings);
console.log(aVal);
console.log(bVal);
console.log(sumVal);
return 'hahah';
}
let tag = tagFunction`${a} + ${b} = ${a+b}`;
// ['', "+", "=", ''],标签函数接收的参数依次是原始字符串数组,每个表达式求值的结果
// 1
// 2
// 3
console.log(tag); // hahah
标签语句
语法:
tag: for (let i = 0; i < 10; i ++){}
标签语法通常用在嵌套循环中, 我们都知道break会打断当前循环强制执行循环下的代码,continue会结束本次循环,但是会继续执行循环
let num = 0;
tag: for (let i = 0; i < 10; i++) {
for (let j = 0; j < 5; j++){
if(j === 3) {
break tag;
}
}
num ++;
console.log(num);
}
上述代码如果只写一个break语句那么就会输出num
的结果,break只会结束内部循环,如果想在内部循环也结束外部循环的话就可以使用标签语句。通过 break tag
结束内部和外部循环 continue
也会执行类似的操作,若是continue tag
则不会继续执行内部循环,会从外部循环开始重新执行。