从今天开始学习这本书,同时记录下自己的学习感悟和知识要点,加深自己对这门语言的理解。
第2章——词法结构
2.1 字符集
1.在JavaScript中,是区分大小写的。
2.JavaScript中会忽略程序中标识的空格。我们可以使用一致的、整齐的缩进来形成统一的编码风格。
2.2 注释
在JavaScript中单行注释用//,多行注释用/**/。
2.3 直接量
又叫字面量,是在程序中直接使用的数据值。
2.3 标识符和保留字
1.在JavaScript中标识符只能以字母、_和$开始。例:var a,_a,$a
2.保留字和预先定义的变量名或函数名不能作为定义变量的名字。
第3章——类型、值和变量
3.1 数字
1.整数型:JavaScript中一个数字表示一个十进制整数,也可以用十六进制表示,但最好不要用八进制。因为八进制,可能不支持,也可能因为开头为0导致其他错误。
2.浮点型:俗称小数 。可用科学计数法。
3.JavaScript中预先定义了Infinity和NaN,用于表示无穷大和非数字值(Not a Number)。
4.NaN和任何值都不相等,包括他自身,所以应当用x!=x判断而不是x==NaN。
5.JavaScript中内置了Date()以表示日期和时间。
3.2 文本
1.字符串(和数组)第一个字符的位置是0,而不是1。空字符串的长度为0。
2.字符串可以拆分成数行,但是结尾要以\结束。如果希望字符串另起一行可以用\n。
3.转义字符。常用的\n(换行),\\(\),\'('),\"(")。
4.字符串之间可以用“+”相连。
5.字符串调用方法:charAt(也可用数组形式a[0])、substring、slice、indexOf、split、replace、toUpperCase。
3.3 布尔值
1.比较语句通常都是布尔值(Boolean)。例:a==3。
2.转化成false的值有:undefined、null、0、-0、""(空字符串)、NaN。其他所有值都会转换成true。
3.4 Null和Undefined
1.typeof null === "object" // true。也就是说null也可以叫做“空对象”。
2.typeof undefined === "undefined" // true。表示是undefined类型。
3.5 全局对象
1.一般来说window充当了全局对象。可以使用this来引用全局对象。
3.6 包装对象
1.字符串不是对象,为什么会有属性?在调用字符串属性的时候,JavaScript会调用new String()方式转换成对象,这个对象继承了字符串的方法。
3.7 不可变的原始值和可变的对象引用
1.原始值(undefined、null、boolean、number、string)是不可更改的,而对象是可以改变的。
2.即使是两个结构完全一样的对象,也是不相等的。只有它们是引用于同一个对象时,才是相等的。
3.8 类型转换
1.parseInt()只解析整数类型,parseFloat()解析整数和浮点数。
2.toString()方法是对象到字符串的转换,valueOf()方法是对象到数字的转换。
3.9 变量声明
3.10 变量作用域
1.局部变量的优先级高于全局变量,如果在局部变量和全局变量里都声明同一个变量,则局部变量会覆盖全局变量。
2.声明提升。函数声明里的所有变量(不包括赋值)会提升到函数体的顶部。
今天学习暂时到这里,今天也算是更加深了对这门语言的一些基础概念的理解,明天再继续下面章节的内容。