js 函数 return false 跳出外部函数，怎么写？
```
function a(){
   if（true）
       return false;
}
```
这是没有任何问题的，如果我改成这种
```
function Test(){
   a();
   b();
   c();
}
```
js 函数a() return false 跳出外部函数Test()，怎么写？
`return` 只能退出当前函数，不具备跨函数的功能。但是 `throw` 具有不限层次中断的功能，所以这个需要可能需要使用 throw 来完成。
一般情况下 `throw` 应该抛出一个 `Error` 对象。但是 JavaScript 并未对 `throw` 的对象有所有限制，所以也可以抛出其它东西，在确实不需要抛出错误的情况下，抛出一个状态对象，甚至值都是可以的。但不管抛出什么，要想外面的程序能正常运行，都是需要 `try ... catch` 的。
举例：
```
function a() {
    console.log("[Trace] a()");
    if (true) {
        throw "true-as-false";
    }
}

function b() {
    console.log("[Trace] b()");
}

function c() {
    console.log("[Trace] c()");
}

function test() {
    try {
        a();
        b();
        c();
    } catch (stat) {
        if (stat === "true-as-false") {
            return;
        }

        // TODO 其他情况正常处理可能发生的错误
    }
}

test();
```
只会输出 `[Trace] a()`，因为被 throw 给中断掉了。
如果是有一堆判断函数，只要有一个 flase 就退出，那就可以用数组来处理，比如
```
const fns = [
    () => { console.log(true); return true; },
    () => { console.log(true); return true; },
    () => { console.log(false); return false; },
    () => { console.log(true); return true; },
];

fns.every(fn => fn());
// true
// true
// false
```
只要遇到一个返回 `false` 的就结束了（注意，返回 `undefined`，也就是无返回值 …… 也表示 `false`)