JavaScript 历史
1995 年,网景(Netscape)公司雇员 Brendan Eich 开发出了网页脚本语言 JavaScript 的 1.0 版。
1997 年,ECMA 组织发布 262 号标准文件(ECMA-262)的第一版 ,ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现。
2015 年,ECMA 组织正式批准了 ECMAScript 6 语言标准,定名为《ECMAScript 2015 标准》。
了解更多历史,可以参考红宝书或阮一峰的书……
JavaScript 的数据类型
JavaScript 中有七种数据类型,分别是:
Number(数字)
String(字符串)
Boolean(布尔值)
Undefined(未定义)
Null(空)
Symbol(符号,ES6 版本新增)
Object(对象)
数据类型的扩展知识
Number 类型表示数字,数字一般以二进制、八进制、十进制及十六进制表示;由于进制转换的原因,数字如果有前导 0,转换后可能出现意外的 Bug(例如八进制转换),所以实际开发一般都使用十进制;如果不是参与运算的数字(例如手机号码),那么一般使用字符串存储。
String 类型表示字符串,空字符串只是一对单引号或双引号,其中只有一个空格也不是空字符串。
包裹字符串的引号,一般推荐使用单引号,这样和 HTML 代码配合比较方便;另外,表示字符串的引号,是一种形式,并不是内容,可以理解为类似数组的方括号。
区分正斜杠和反斜杠,可以参照汉字“八”,撇就是正斜杠,捺就是反斜杠;转义符是反斜杠,单行注释是双正斜杠。
多行字符串可以在末尾换行处加一个转义符,但是这个转义符后面除了换行符不能有任何字符,一般很少使用这种方法,更推荐多行拼接的方法。
将数据类型转换为 Boolean,也就是布尔值类型后,值为 false(假,称为“falsy”值)的有:
false
、null
、undefined
、0
、NaN
、空字符串''
或""
;值为 true(真,称为“truthy”值)的有:任何非空字符串、任何对象(包括空对象)、任何非 0 的数值(包括无穷大和无穷小)。按照惯例,声明一个变量要存储一个对象,但一开始不准备具体赋值时,便将其赋值为
null
,表示这个空变量将要存储一个对象而不是基本数据类型;而如果是要存储基本类型,只声明不赋值即可,值本来就是undefined
。对象中的属性名可以是任意字符串,包括空字符串;如果属性名是数字,在访问时会自动转换为字符串,但是如果不是数字也不是字符串,则需要符合标识符的命名规则;然而如果属性名是字符串或数字,那么访问时就需要使用方括号运算符而不能使用点运算符的方式,除非字符串属性名符合标识符的命名规则。
删除一个对象属性可以使用
delete
操作符,注意使用此操作符删除属性后,属性的键和值都会被删除。使用
typeof
操作符对函数进行检测,返回值为反直觉的'function'
,而不是'object'
;但是检测值为null
的数据,则会返回'object'
……
课后拾遗
访问对象的属性时,如果在方括号内的属性名是一个数字间运算,那么会先运算得出的结果数字,然后再将数字转换为字符串;
要知道一个对象有哪些键名,可以使用对象的
keys()
方法。