JavaScript 的起源故事
JavaScript 的设计思想
ECMAScript 和 JavaScript 的关系
1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准
次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版
该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因:
- 一是商标,JavaScript本身已被Netscape注册为商标
- 二是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性
因此ECMAScript和JavaScript的关系是,前者是后者的标准,后者是前者的一种实现
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,所以ECMAScript可以理解为是javascript的一个标准,而javascript是ECMA-262标准的实现和扩展
ECMAScript 的历史
年份 | 名称 | 描述 |
---|---|---|
1997 | ECMAScript 1 | 第一个版本 |
1998 | ECMAScript 2 | 版本变更 |
1999 | ECMAScript 3 | 添加正则表达式添加try/catch |
ECMAScript 4 | 没有发布 | |
2009 | ECMAScript 5 | 添加"strict mode"严格模式添加JSON支持 |
2011 | ECMAScript 5.1 | 版本变更 |
2015 | ECMAScript 6(ES6) | 添加类和模块 |
2016 | ECMAScript 7 | 增加指数运算符(**)增加Array.prototype.includes |
JavaScript 的组成
- ECMAScript:JavaScript的语法标准。包括变量、表达式、运算符、函数、if语句、for语句等
- 文档对象模型(DOM) Document object model:操作网页上的元素的API。比如让盒子移动、变色、轮播图等
- 浏览器对象模型(BOM) Broswer object model:操作浏览器部分功能的API。比如让浏览器自动滚动
JavaScript 的特点
- 解释执行(浏览器就是解释器):事先不编译、逐行执行、无需进行严格的变量声明
- 简单易用:可以使用任何文本编辑工具编写,只需要浏览器就可以执行程序
- 基于对象:内置大量现成对象,编写少量程序可以完成目标
JavaScript 的用途
- javaScript一般用来编写客户端脚本,来为html页面添加交互行为,是前台语言,而不是后台语言(node.js除外)
JavaScript 语言的类型
1.弱类型
按照计算机语言的类型系统的设计方式,可以分为强类型和弱类型两种
二者之间的区别,就在于计算时是否可以不同类型之间对使用者透明地隐式转换
从使用者的角度来看,如果一个语言可以隐式转换它的所有类型,那么它的变量、表达式等在参与运算时,即使类型不正确,也能通过隐式转换来得到正确地类型,这对使用者而言,就好像所有类型都能进行所有运算一样,这样的语言被称作弱类型
2.动态语言
动态语言:声明变量时无需指定类型
静态语言:声明变量时必先指定类型