阅读笔记
- JavaScript程序是用Unicode字符集编写的
- 区分大小写(js文件或标签当中是严格执行的,HTML的不是)
- 数据类型分为原始类型和对象类型,特殊对象: 全局对象、数组、函数
- 如果函数用来初始化(使用new运算符)一个新建的对象,称之为构造函数
- 有用的类:日期(Date)、正则(RegExp)、错误(error)
- JavaScript解释器有自己的内存管理机制,可以自动对内存进行垃圾回收
- 只有null和undefined是无法拥有方法的值
- JavaScript的类型可以分为原始类型和对象类型,也可以分为可以拥有方法的类型和不能拥有方法的类型,同样可以分为可变类型和不可变类型。
类型、值和变量
字符串
- ES5 字符串通过()换行,反斜线和行结束符都不算字符串的内容,
解决字符串当中的单引号和双引号的问题是将其转义
- 当JavaScript代码和HTML代码混杂在一起的时候,最好是在JavaScript和Html代码中各自使用独立的引号风格,例如在JavaScript中统一使用单引号,HTML中统一使用双引号。
- 字符串是固定不变的,这些操作都是返回新的字符串
字符串使用
- 字符串长度
str.length
- 获取当个字符
str.charAt(index)
0开始计算 - 截取字符串
str.substring(star, end)
0开始计算
转义字符
\n
换行符\r
回车符\\
反斜线\f
换页符- 英文当中的撇号
模式匹配
布尔值
表达式和运算符
- 通过this调用宿主对象
并不是方法调用的调用表达式通常使用全局对象作为this关键字的值。ES5中通过严格模式定义的函数在调用的时候将使用undefined作为this的值,this不会指向全局对象。
对象创建表达式
new Object()
如果一个对象创建表达式不需要传入任何参数给构造函数的话,那么圆括号可以省略new Object
- 当计算一个对象创建表达式的值时,和对象初始化表达式通过{}创建对象的做法一样,JavaScript首先创建一个新的空对象,然后,JavaScript通过传入指定的参数并将这个新对象当做this来初始化这个新创建对象的属性。那些被当做构造函数的函数不会返回一个值,并且这个新创建并被初始化后的对象就是整个对象创建表达式的值。如果一个构造函数确实返回了一个对象值,那么这个对象作为整个对象创建表达式的值,而新创建的对象就废弃了。(所以一般不返回对象)