1. 语句
JavaScript程序的执行单位为行(line),每一行就是一个语句。1+3是一个表达式
语句和表达式区别在于:前者是进行某种操作,后者是为了得到返回值
带一个分号视为语句的结束,空语句视为一个分号
var a = 1+3; //这是一条语句 1+3是一个表达式 带有分号意味着这条语句的结束点
2. 变量
2.1 概念
变量是对“值”的引用。
var a = 1; //声明一个变量其值为1
var a; //声明一个变量 a
a //若定义未赋值 则值为undefined
x //未声明直接引用 则报错 x is not defined
a = 'a' //JS是动态类型语言 变量类型没有限制
var //等关键字在声明变量时,在第二此声明变量并赋值则覆盖之前的值
2.2 变量提示
JavaScript 引擎的工作方式时,先解析代码,获取所有被声明的变量,然后再一行一行地运行
console.log(a); //undefined
var a = 1;
//上述代码由于变量提示的原因,并不会报错。只会输出未定义
3. 标识符
标识符指的是用来识别各种值得合法名称。常见标识符是变量名以及函数名。
JavaScript 的标识符对大小写敏感 a 和 A 是两个标识符
标识符规则,声明标识符要符合规则,不然JavaScript 引擎遇到非法的标识符,就会报错
a
_
$
π
// 第一个字符,可以是任意Unicode字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)
// 第二个字符及后面的字符,除了Unicode字母、美元符号和下划线可以带有数字
var 中国;
// 注: 中文也是合法的标识符
// 注:JavaScript 的保留字不可用作标识符arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。
4. 注释
源码中被JavaScript引擎忽略的部分就叫做注释,它的作用是对代码进行解释
// 这是单行解释
/*
这是多行解释
*/
/*
不建议在JavaScript 里使用HTML注释 <!-- -->
规则为 只有 “ --> ” 在行首才算
*/
5. 区块
JavaScript使用大括号,将多个相关的语句组合在一起,称为“区块”(block)
对于 var 命令来说 JavaScript的区块不构成单独的作用域(scope)
{
var a = 1;
}
a //1
6. 条件语句
JavaScript提供 if 结构和 switch 结构,完成条件判断,即只有满足预设的条件,才会执行相应的语句。
6.1 if 结构
if 结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句
if(布尔值){
语句
};
6.2 if…else 结构
if 代码块后面,还可以跟一个else代码块,表示不满足条件时,所要执行的代码。
if(布尔值){
语句; //布尔值为 true 执行
}else{
语法; //布尔值为 false 执行
}
// 多个if else 嵌套
if(布尔值){
语句;
}else if(布尔值){
语句;
}else if(布尔值){
语句
}else{
语句 //等等 这种结构不太好 可以使用switch 条件结构
}
6.3 switch 结构
多个if … else 连在一起使用的时候,可以转为使用更方便的switch结构
switch(fruit){
case "banana":
// ...
break;
case "apple""
// ...
break;
default:
// ...
}
上面代码根据变量 fruit 的值,选择执行相应的case。如果都不符合则执行 默认 default。
切记:每个case 后面需要 break 不然会一直执行下去的 而不是跳出switch 结构
注:switch 语句部分 和 case 语句部分 都可以使用表达式
switch( 1+3 ){
case 2+2 : fn(); break;
}
6.4 三元运算符 ?:
JavaScript 还有一个三元运算符 (该运算需要三个运算子)?:也可以用来进行逻辑判断
(条件)?表达式1:表达式2
true ? 1 : 2 //1
false ? 1 : 2 //2
7. 循环语句
7.1 while 循环
while 语句包括一个循环条件和一块代码块,只要条件为真,就不断循环执行代码块
while(条件)
语句;
// 或者
while(条件){
语句;
}
7.2 for 循环
for 语句是循环命令的另一种形式,可以指定循环的起点和重点和终止条件
for(初始表达式; 条件; 终止表达式)
语句
// 或者
for(初始表达式; 条件; 终止表达式){
语句;
}
for( ; ; ){
语句;
} //该循环是一个无限循环
- 初始表达式:确定循环变量的初始值,只在循环开始执行一次
- 条件表达式:每轮循环开始时,都要执行这个条件表达式,只有值为真才进行循环
-
7.3 do..while 循环
do…while 循环与while循环类似,唯一的区别就是先运行一次循环体,然后判断循环条件
do{
语句;
}while(条件);
//或者
do
语句
while(条件);
这种循环结构不管条件是否为真 循环至少运行一次,这是这种结构的最大特点。
注:while(); 分号不可少7.4 break 语句 和 continue 语句
break语句 和 continue语句都具有跳转作用,可以让循环的循序发生改变
break 语句 用于 跳出当前的循环
continue 语句 用于终止本次循环执行 直接进入下一次循环var i = 0;
while(i<100){
console.log(i)
i++;
if(i===10){break}
}
// i 等于10 跳出这个循环 for 也可以用break
while(i < 100){
i++;
if(i%2===0)continue;
console.log(i)
}
7.5 标签(label)
JavaScript语言 允许,语句的前面有标签(label),相当于定位符,用于跳转程序的任意位置格式如下:
label:
语句;
注:标签可以是任意的标识符,但不能是保留字,语句的部分是任意语句
label 通常与 break 语句和 continue语句配合使用,跳出特定的循环。 ```javascript top: for(var i=0;i<3;i++){ for(var j=0;j<3;j++){if(i===1 && j===1)break top;
console.log("i = "+i+", j = "+j)
} }
//标签也可用于代码块 top: { console.log(1) break top; console.log(‘本行不会输出’) } console.log(3)
continue 语句也可以跟标签配合使用
```javascript
top:
for(var i=0;i<3;i++){
for(var j=0;j<3;j++){
if(i===1 && j===1) continue top;
console.log("i = "+i+", j = "+j);
}
}
continue 跟 break 不一样的是。满足条件会跳出当前循环,直接进入下一轮外层循环。
如果continue 语句后面不适用标签,则只能进入下一个内层循环