1.应用场景

主要用于终止js脚本执行, 如代码调试[不太推荐]. 业务逻辑需要.

2.学习/操作

1. function中的return false 与 return的区别?  

前者返回的是bool值false, 后者返回的是undefined

return语句终止函数的执行,并返回一个指定的值给函数调用者。

语法

return [[expression]];

expression

表达式的值会被返回。如果忽略,则返回 undefined

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/return  //推荐实践

备注:

如果在函数外直接使用return, 会报语法错误

console.log('return before');
 if(true){
     return;
 }
 console.log('return after');
 VM2724:3 Uncaught SyntaxError: Illegal return statement

截图:


javascript终止程序 终止js运行代码_javascript终止程序


2. 函数外暂定[即js任意地方脚本]?

JavaScript是一门单线程但是可处理异步任务的脚本语言,

是没有提供sleep等类似的方法的, 当有需求需要暂停js脚本时,

可以使用以下的方法.

单线程分析

JavaScript - 多线程/单线程, 同步/异步,阻塞/非阻塞, 回调函数_william_n的博客_js线程同步


一, alert, comfirm弹窗暂停

js的alert, confirm弹窗类方法, 是可以暂停js脚本执行的.  //也是因为这个原因, 调试前端代码并不推荐使用alert();

例如:

<script>
console.log(1);
alert(1);
console.log(2);
</script>

截图: 

javascript终止程序 终止js运行代码_单线程_02

这样弹窗,是需要点击确认才会执行下面的语句的

就算是定时器也一样暂停.

<script>
var i=0;
setInterval(function(){
console.log(i);
i++;
if(i==5){
alert(i);
}
},500)
</script>

截图: 

javascript终止程序 终止js运行代码_单线程_03

javascript终止程序 终止js运行代码_ajax_04


二, while() 方法暂停

while方法可以暂停, 但是会影响浏览器性能, 并且不好控制.

<script>
var i=0;
 console.log(new Date());
 while(i<5000000000){
     i++;
 }
 console.log(new Date());</script>

截图:

javascript终止程序 终止js运行代码_ajax_05

只要控制下while的判断条件,就可以实现暂停了.


三, ajax同步请求方法

此方法需要服务器协作才能实现, 这里就暂时不做测试, 而且不建议使用.


大概步骤就是:

ajax同步 [设置一个参数即可]

带上一个参数time,

服务器接收之后,

sleep(time),  //如: php

到时间再输出, 回到ajax回调函数, 在这个时间 内,ajax是停止状态的.


总结:

Js是不能暂停[与终止不同]脚本的, 上面的方法, 只是抢占当前浏览器线程, 相当于该线程的某个语句一直还停留在当前浏览器线程.

如:while, 当前还未执行完while循环该方法,所以不能退出该线程, 不让切换执行, 所以实现了'暂停'.


3. 终止脚本

throw 语句

throw语句的作用是手动中断程序执行,抛出一个错误。

if (x <= 0) {
   throw new Error('x 必须为正数');
 }
 // Uncaught ReferenceError: x is not defined

上面代码中,如果变量x小于等于0,就手动抛出一个错误,告诉用户x的值不正确,整个程序就会在这里中断执行。可以看到,throw抛出的错误就是它的参数,这里是一个Error实例。

throw也可以抛出自定义错误。

对于 JavaScript 引擎来说,遇到throw语句,程序就中止了。

引擎会接收到throw抛出的信息,可能是一个错误实例,也可能是其他类型的值。



后续补充

...

3.问题/补充

TBD

4.参考

return - JavaScript | MDN

https://www.php.cn/js-tutorial-388768.html

后续补充

...