[TOC]
# 基本概念
* * * * *
### 3.1 语法
#### 1. ECMAScript中的一切(变量、函数名和操作符)都区分大小写。
#### 2. 标识符
标识符: 指变量、函数、属性的名字,或者函数的参数。
**命名规则:**
* 第一个字符必须是一个字母、下划线(`_`)或一个美分符号(`$`)
* 其他字符可以是字母、下划线、美元符号或数字。
按照惯例,ECMAScript标识符采用驼峰大小书写格式,及第一个字母小写,其他每个单词首字母大写,如`myWord`
#### 3. 注释
源码中被JavaScript引擎忽略的部分就叫做注释,它的作用是对代码进行解释。Javascript提供两种注释:一种是单行注释,用//起头;另一种是多行注释,放在/* 和 */之间。
~~~
// 这是单行注释
/* /*
这是 * 另一种
多行 * 多行
注释 * 注释
*/ */
~~~
#### 4. 语句
ECMAScript中的语句以一个**分号结尾**;如果省略分号,则由解析器确定语句的结尾。
JavaScript程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。
**语句(statement)是为了完成某种任务而进行的操作**,比如下面就是一行赋值语句:
~~~
var a = 1 + 3;
~~~
* * * * *
### 3.2 关键字和保留字
ECMA-262描述了一组具有**特定用途**的关键字,这些关键字可用于控制语句的开始或结束,或者用于执行特定操作等,**不能用作标识符**。
~~~
break do instanceof typeof
case else new var
catch finally return void
continue for switch while
debugger function this with
default if throw delete
in try
~~~
ECMA-262还描述了一组不能用作标识符的保留字:
~~~
abstract enum int short
boolean export interface static
byte extends long super
char final native synchronized
class float package throws
const goto private transient
debugger implements protected volatile
double import public
~~~
如果使用关键字作标识符,会导致“Identifier Expected”错误。
* * * * *
### 3.3变量
变量是对**“值”的引用**,使用变量等同于引用一个值。每一个变量都有一个变量名。
ECMAScript的变量是**松散类型**的,所谓松散类型就是可以用来保存任何类型的数据。定义变量时要使用var操作符,后跟变量名。
~~~
var message
~~~
注意:使用var操作符定义的变量将成为定义该变量的**作用域中的局部变量**,也就是说,如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁。
~~~
function test(){
var message = 'm'; //局部变量
}
test();
console.log(message); // 报错
~~~
如果省略了var操作符,就相当于定义了一个全局变量,在函数外部的任何地方都可以访问到。
~~~
function test(){
message = 'm'; //局部变量
}
test();
console.log(message); // "m"
~~~
不推荐省略var操作符。
一条语句定义多个变量,变量之间用逗号(`,`)分隔开
~~~
var message = "hi",
name = "Tom",
age = 10;
~~~
- 前言
- 第一章 JavaScript简介
- 第三章 基本概念
- 3.1-3.3 语法、关键字和变量
- 3.4 数据类型
- 3.5-3.6 操作符、流控制语句(暂略)
- 3.7函数
- 第四章 变量的值、作用域与内存问题
- 第五章 引用类型
- 5.1 Object类型
- 5.2 Array类型
- 5.3 Date类型
- 5.4 基本包装类型
- 5.5 单体内置对象
- 第六章 面向对象的程序设计
- 6.1 理解对象
- 6.2 创建对象
- 6.3 继承
- 第七章 函数
- 7.1 函数概述
- 7.2 闭包
- 7.3 私有变量
- 第八章 BOM
- 8.1 window对象
- 8.2 location对象
- 8.3 navigator、screen与history对象
- 第九章 DOM
- 9.1 节点层次
- 9.2 DOM操作技术
- 9.3 DOM扩展
- 9.4 DOM2和DOM3
- 第十章 事件
- 10.1 事件流
- 10.2 事件处理程序
- 10.3 事件对象
- 10.4 事件类型
- 第十一章 JSON
- 11.1-11.2 语法与序列化选项
- 第十二章 正则表达式
- 12.1 创建正则表达式
- 12.2-12.3 模式匹配与RegExp对象
- 第十三章 Ajax
- 13.1 XMLHttpRequest对象
- 你不知道的JavaScript
- 一、作用域与闭包
- 1.1 作用域
- 1.2 词法作用域
- 1.3 函数作用域与块作用域
- 1.4 提升
- 1.5 作用域闭包
- 二、this与对象原型
- 2.1 关于this
- 2.2 全面解析this
- 2.3 对象
- 2.4 混合对象“类”
- 2.5 原型
- 2.6 行为委托
- 三、类型与语法
- 3.1 类型
- 3.2 值
- 3.3 原生函数