Javascript 暂停/终止脚本

Javascript 暂停/终止脚本

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

截图:

2. 函数外暂定[即js任意地方脚本]? JavaScript是一门单线程但是可处理异步任务的脚本语言,

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

可以使用以下的方法.

单线程分析

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

一, alert, comfirm弹窗暂停

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

例如:

截图:

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

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

截图:

二, while() 方法暂停

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

截图:

只要控制下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抛出的信息,可能是一个错误实例,也可能是其他类型的值。

后续补充

...

相关推荐

频谱仪是什么
线上365bet开户

频谱仪是什么

📅 09-15 👁️ 6102
学平面设计就业怎么样?真实故事告诉你真相
cctv3直播365

学平面设计就业怎么样?真实故事告诉你真相

📅 09-17 👁️ 9234
历届世界杯冠军(世界杯冠军次数排名)
365账号怎么注册

历届世界杯冠军(世界杯冠军次数排名)

📅 07-06 👁️ 4029