Thinking系列,旨在利用10分钟的时间传达一种可落地的编程思想。
假设在函数体内有一个两重循环语句,需要在内层循环中判断,当到达某个临界条件时退出外层循环。
方式一:引入控制标记变量
代码语言:javascript复制function test1 () {
let isBreak = false
for (let i = 0; i < 10; i ) {
for (let j = 0; j < 10; j ) {
if (i * j > 10) {
isBreak = true
break
}
}
if (isBreak) break
}
}
方式二:直接退出整个方法
代码语言:javascript复制function test2 () {
let isBreak = false
for (let i = 0; i < 10; i ) {
for (let j = 0; j < 10; j ) {
if (i * j > 10) {
return
}
}
}
}
如果在循环之后有一些将被执行的代码呢?
以 console.log(i, j)
为例
对于方式一:引入控制标记变量,需要在外层循环增加代码,同时将 j 变量作用域提到外层
代码语言:javascript复制function test1 () {
let isBreak = false
// j 的作用域提到外层
let i, j
for (i = 0; i < 10; i ) {
...
if (isBreak) {
// 新增逻辑
console.log(i, j)
break
}
}
}
对于方式二:直接退出整个方法,循环后面的代码放到 return 后面(可抽离成方法,单独管理)
代码语言:javascript复制function doSomething (i, j) {
// 新增逻辑
console.log(i, j)
}
function test2 () {
...
return doSomething(i, j)
}
其他函数Thinking:
- Thinking–函数参数Normalize思想在前端中的应用
- Thinking–函数强制参数
- Thinking–函数参数重载