这是我参与「第五届青训营 」伴学笔记创作活动的第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代码时让我们对底层的原理产生了一个更加清晰的理解。