Javascript更进一步 | 青训营笔记

33 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第4天

前言

上次的学习中我们初步了解了JavaScript的基本数据类型以及它作为动态类型编程语言的特性,但JavaScript的特性可远远不止这些,在本次的学习中,我们将就Javascript进行一个更加深入的了解。

JavaScript是单线程语言

与其他静态类型编程语言不同,JavaScript不存在多线程编程的情况,JavaScript仅仅只有一个线程。但有时我们又需要执行一些代码的同时不影响主进程的运行,这就要用到JavaScript的又一特性,即同步异步特性。

同步代码

JavaScript中同步代码顺次执行,后面的代码等待前面的代码执行完成后才开始执行。这样的运行模式简单易懂,但如果我们想要从服务器获取数据,而服务器获取数据的时间相对来说非常漫长,如果也使用主进程会导致阻塞时间过长,极大的影响了用户体验,那么解决这个问题就需要用到异步代码。

异步代码

虽然JavaScript只有一个线程,但JavaScript可以将一些异步代码的执行托管给浏览器执行,在结果呈现后再从浏览器的线程获取。这样就构成了两个相对独立的运行过程。

ECMAScript标准

ECMAScript是JavaScript的语言标准,至今为止已经经历了许多版本。通常来说,我们描述版本有两种方法,一是es后接数字,代表第几次语言标准;二是es后接年份,代表哪一年制定。如,es6与es2015实际上是同一个版本。

重要的JavaScript版本

众多es版本中,最具时代性的是es5到es6的改变。在es6中添加了许多崭新的特性。如下图所示

let a = 1
const s = 'str'
const fn = () => {
    console.log('hello world!')
}

es6带来的便利远远超出你的想象

总结

本次了解了JavaScript的同步异步机制和ECMAScript标准,在编写JavaScript代码时让我们对底层的原理产生了一个更加清晰的理解。