javascript

2021-02-09, updated 2021-09-12

JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

setInterval

定义和用法 setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

语法 setInterval(code,millisec[,“lang”]) 参数 描述 code 必需。要调用的函数或要执行的代码串。 millisec 必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。 返回值 一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。

实例

<html>
<body>

<input type="text" id="clock" size="35" />
<script language=javascript>
var int=self.setInterval("clock()",50)
function clock()
  {
  var t=new Date()
  document.getElementById("clock").value=t
  }
</script>
</form>
<button onclick="int=window.clearInterval(int)">
Stop interval</button>

</body>
</html>

sleep

很多编程语言里都有sleep(),delay()等方法,它能让我们的程序不那么着急的去执行下一步操作,而是延迟、等待一段时间。软件开发中经常会遇到需要这样的函数,比如等待几分钟去检查某一事件是否发生。JavaScript里有setTimeout()方法来实现设定一段时间后执行某个任务,但写法很丑陋,需要提供回调函数:

setTimeout(function(){ alert(“Hello”); }, 3000); 复制代码 JavaScript Promise API是新出现了一个API,借助 Promise,我们可以对setTimeout函数进行改良,下面就是把setTimeout()封装成一个返回Promise的sleep()函数。

function sleep (time) { return new Promise((resolve) => setTimeout(resolve, time)); }

// 用法 sleep(500).then(() => { // 这里写sleep之后需要去做的事情 }) 复制代码 你会发现,这种写法很优雅,很像其它编程语言里的延迟、等待函数。Promise API使我们避免传入回调函数,我们在实现中还使用了ES6中的箭头(arrow)函数。

这里需要提到的一个问题是,这个sleep()在执行的时候是“block”程序的继续执行的。它不是同步的。如果想让它同步执行,不妨碍执行之后的代码,我们可以使用 async/await 关键字。

function sleep (time) { return new Promise((resolve) => setTimeout(resolve, time)); }

(async function() { console.log(‘Do some thing, ' + new Date()); await sleep(3000); console.log(‘Do other things, ' + new Date()); })(); 复制代码 慢慢更新

split

split() 方法用于把一个字符串分割成字符串数组。

提示: 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

split() 方法不改变原始字符串。

语法

string.split(separator,limit)

参数值

返回值

示例

  1. 省略分割参数:

    var str="How are you doing today?";
    var n=str.split();
    

    输出数组值得结果:

    How are you doing today?
    

    ``

  2. 分割每个字符,包括空格:

    var str="How are you doing today?";
    var n=str.split("");
    

    输出结果

    H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
    
  3. 使用 limit 参数

    var str="How are you doing today?";
    var n=str.split(" ",3);
    

    将输出3个数组的值

    How,are,you
    
  4. 使用一个字符作为分隔符

    var str="How are you doing today?";
    var n=str.split("o");
    

    输出数组值得结果

    H,w are y,u d,ing t,day?
    

获取当前系统时间

var now = new Date(); // 单位毫秒
var timestamp = parseInt(new Date().getTime()/1000);  // 单位秒
words: 1218 tags: javascript