乐趣区

关于前端:深入理解JavaScriptJavaScript-是什么

Brendan Eich 花了 10 天工夫,设计实现的一门语言。它是个大杂烩,参考了多个语言,例如:

  • 根本语法:借鉴 C 语言和 Java 语言
  • 数据结构:借鉴 Java 语言,包含将值分成原始值和对象两大类
  • 函数的用法:借鉴 Scheme 语言和 Awk 语言,将函数当作第一等公民,并引入闭包
  • 原型继承模型:借鉴 Self 语言(Smalltalk 的一种变种)
  • 正则表达式:借鉴 Perl 语言
  • 字符串和数组解决:借鉴 Python 语言

与此同时,它是一门动静、弱类型的编程语言,非常适合面向对象和函数式的编程格调

动静语言,与之对应的是动态语言,动态语言在编译时变量的数据类型就确定的;而动静语言则是在运行时确定数据类型

强类型与弱类型,强类型语言一旦变量的类型被确定,就不能被转化,而弱类型的变量类型由利用上下文确定

特点

基于原型继承,即每个对象领有一个原型对象,对象又以其原型为模板,从原型继承办法和属性。原型对象也是对象,也领有原型,并从它的原型继承办法和属性,如此类型,造成原型链。咱们会在后文对原型、继承别离进行具体介绍

函数是一等公民,不仅能像对象一样应用,还领有函数传值、作为返回值返回。咱们亦在后文介绍

函数作用域,函数作用域为词法作用域,可造成闭包,咱们会在后文持续

由什么组成

JavaScript = ECMAScript + 文档对象模型(DOM)+ 浏览器对象模型(BOM)

ECMAScript:语言自身,由语法、类型、语句、关键字、保留字、操作符、全局对象组成

文档对象模型(DOM):操作 HTML 的 API,名字又多又长,可查文档——MDN

浏览器对象模型(BOM):操作 浏览器的 API,如 Window、Screen、Location、History、Navigator、弹出框、Timing、Cookies

ECMAScript 版本

工夫点 版本
1997.7 ECMAScript 1.0 公布
1998.6 ECMAScript 2.0 公布
1999.12 ECMAScript 3.0 公布
2007.10 ECMAScript 4.0 草案公布,产生一致
2008.7 改善一部分 4.0 性能,公布 ECMAScript 3.1
2009.12 ECMAScript 5.0 正式公布
2011.6 ECMAScript 5.1 版公布
2013.12 ECMAScript 6 草案公布
2015.6 ECMAScript 6 正式公布,并且更名为“ECMAScript 2015”

自此之后,往后每年发版一个版本,在那年发版就带上年份,如 2022 年公布,称为”ECMAScript 2022“,2023 年公布”ECMAScript 2023“

参考资料

  • 「温习」所以 JavaScript 到底是什么?我竟然懵了
  • JavaScript 语言的历史
退出移动版