一、JS的相关历史简要
1991年 李爵士创建了万维网
1992年 CSS诞生
1993年 W3C诞生
1994年底-1995年 Netscape创建了名为Navigator浏览器,并且与Sun公司合作,使其浏览器支持嵌入Java小程序,但并不使用Java作为脚本语言,而是聘请了程序员Brendan Eich写出一种类似Java的语言(只用了10天)--JavaScript
后来,unicode发布。这说明了重要的一点:JavaScript并不完全支持UTF-8
1996年 微软公司仿照JavaScript开发一种新语言名为JScript将其内置于IE3浏览器。Netscape公司面临丧失浏览器脚本语言的主导权,于是Netscape将JavaScript 提交给国际标准化组织 ECMA(European Computer Manufacturers Association)希望其能与微软抗衡,在1998年开源了浏览器,导致Mozilla项目的诞生。
1997年 ECMA组织发布了第一版标准名为ECMAScript 1.0。一方面是JavaScript已经被Netscape公司注册使用,另一方面想体现这一标准是由ECMA制定。
1999年 IE 5部署了 XMLHttpRequest 接口,允许 JavaScript 发出 HTTP 请求,为后来大行其道的 Ajax 应用创造了条件。同年12月,ECMAScript 3.0发布,成为 JavaScript 的通行标准。此时JavaScript的缺点:没有模块化、内置代码少。
2001年-2003年 微软、Mozilla项目、苹果分别推出浏览器IE6、Firefox、Safari
2004年 Google 公司发布了 Gmail,促成了互联网应用程序。JavaScript开始被认为是一种编程语言。
2006年 IE7发布
2009年 ECMAScript 5.0发布。但功能改善太少,于是Rails社区发布了 CoffeeScript 的最初版本。CoffeeScript 可以被转换为 JavaScript 运行,但是语法比 JavaScript 简洁。这开启了其他语言转为 JavaScript 的风潮。
2011年 微软发布IE8浏览器
2015年 ECMAScript 6.0发布。JavaScript开始成为现代编程语言。后面开始JavaScript每年一更。
值得注意的是,以上可以看出IE8不支持ECMAScript 6.0
二、JavaScript里的数据类型
JavaScript有以下七种数据类型:数值number、字符串string、布尔值boolean、符号symbol(ECMAScript 6引入)、null、undefined、对象object。前六种称为基本类型,最后一种称为复杂类型。下面简单介绍一下:
1.number
十进制:1、.1(即0.1)、1.23e2(即1.23*10^2)
二进制:0b11
八进制:011(由0开头,或者0o开头。通常来说,有前导0的数值会被视为八进制,但是如果前导0后面有数字8和9,则该数值被视为十进制,所以八进制容易出bug)
十六进制:0x11
2.string
例子:’你好‘、''或者""、' '(注意中间有空格,如图一)、'\''(注意中间的‘是内容,\是转义符。若不加\浏览器会报错,如图二)、'\n'(表示空格)、'\\'(表示\)
3.boolean
与&&(参考图三)
或||(参考图四)
4.symbol(ES6新引入)
5.null(表示空对象)
6.undefined(表示非空对象)
7.object
由例子 (图五)可以看出以下几点:
(1)object由各种基本类型组成,并且object里可以有object;
(2)key-value之间可以用逗号隔开,但只是ECMAScript 5之后才支持,由历史可以看出IE7及其以下版本不支持;
另外需要注意的地方:
(1)key可以是空字符串(如图六)
(2)key必须符合标识符规则:
第一个字符可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_);
第二个字符及后面的字符除了 Unicode 字母、美元符号和下划线,还可以用数字0-9;
中文是合法的标识符;
不符合标识符规则的则需要用引号引起来
(3)读取的方法有两种,用图五的例子:方法一:person.name;方法二:person['name'](这一种方法要注意的是key必须要用''引起来,因为如果这个key在别处有声明则会导致浏览器误解)
(4)删除key的方法:
delete person['name'](如图七)
注意:要区别于写:person.name = undefined。该语句只会把name的值清空,但不会删除了这个key,如图八)
(5)遍历key,拿图八的例子:
(6)遍历value:
三、看变量的类型(typeof)
记住以下两点:
1.null的typeof返回object,其余类型返回其对应的类型值
2.function的typeof返回function,但function其实属于object,七种数据类型并无function