第三章 JS基本概念
书中第三章主要通过第三版 ECMAScript 介绍了 JavaScript 的基本概念,也是 JavaScript 的最主要部分。这一章的很多内容虽然已经掌握,但仍有很多需要注意的地方。
1. 语法
ECMAScript 语法大量借鉴 C 及其他类 C 语言。
1.1 ECMAScript 中的一切(变量、函数名和操作符)全部区分大小写
1.2 标识符命名规则:
- 以字母,下划线(_)或美元符号($)开头;
- 其他字符可以是字母,下划线,美元符或数字。
- 按照惯例,ECMAScript 标识符采用驼峰大小写格式,例如:firstName
1.3 注释:
-
单行注释使用双斜杠开头
// 单行注释
-
块级注释使用斜杠加星号 (/*) 开头,星号加斜杠(*/)结尾
/* * 这是一个多行 * (块级)注释 */
-
块级注释中二三行以星号开头并非必须,只是为了提高注释可读性。
1.4 严格模式:
严格模式下,ECMAScript 3 中的一些不确定的行为将得到处理,并且对某些不安全的操作也会抛出错误。
-
在整个脚本中启用严格模式,可以在顶部添加以下代码:
“use strictt
-
指定函数在严格模式下执行:
function doSomething(){ "use strict"; //函数体 }
1.5 语句:
-
ECMAScript 中的语句以一个分号结尾;如果省略分号,则由解析器确定语句的结尾。虽然语句结尾的分号不是必需的,但是建议任何时候都不要省略。一方面可以避免很多错误(代码行尾没有分号会导致压缩错误),另一方面可以增进代码性能(解析器不必再花费时间去推测哪里需要插入分号)。
-
虽然条件控制语句(如 if 语句)只在执行多条语句的情况下才要求使用代码块,但最佳实践是始终在控制语句中使用代码块——即使代码块中只有一条语句。这样可以让编码意图更加清晰,也可以降低修改代码时出错的几率。
if (test) alert(test); // 有效但不推荐使用 if (test){ alert(test); // 推荐使用 }
2. 关键字和保留字
- 关键字
break do instanceof typeof case
else new var catch finally
return void continue for switch
while function this with default
if throw delete in try
- 保留字
abstract enum init short boolean
export interface static byte extends
long super char final native
class float package throws synchronized
const goto private transient debugger
implements protected volatile double import
public
3. 变量
ECMAScript 中的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。换句话说,每个变量仅仅是一个用于保存值的占位符而已。定义变量时用 var 操作符。
-
未初始化的变量,会保存一个特殊值——undefined
-
使用 var 操作符定义的变量为局部变量,在作用域结束后就会被销毁
-
省略 var 操作符会创建一个全局变量,不推荐这种做法(难以维护且在严格模式下会报错)
-
可一条语句定义多个变量,用逗号分开即可:
var message = "hi", found = false, age = 21;
4. 数据类型 / 5. 操作符
《JavaScript高级程序设计》——JS基本概念之数据类型