JS基本语法
表达式与语句
表达式(expression),指一个为了得到返回值的计算式。
1 + 2 表达式的值为3
add(1 + 2) 表达式的值为函数的返回值
console.log 表达式的值为函数本身
console.log(3) 表达式的值为undefined
语句(statement),是为了完成某种任务而进行的操作,例如赋值语句var a = 1 + 3;
var a = 1 是一个语句
var a = 1 + 3
var b = ‘abc’
二者区别
表达式一般都有值,语句可能有也可能没有
语句一般不会改变环境(声明、赋值)
以上并不绝对
语句主要为了进行某种操作,一般情况下不需要返回值;表达式则是为了得到返回值,一定会返回一个值。凡是 JavaScript 语言中预期为值的地方,都可以使用表达式。比如,赋值语句的等号右边,预期是一个值,因此可以放置各种表达式。
表达式不需要分号结尾。一旦在表达式后面添加分号,则 JavaScript 引擎就将表达式视为语句,这样会产生一些没有任何意义的语句。
标识符
指的是用来识别各种值的合法名称,最常见的标识符就是变量名,以及函数名。
JavaScript 语言的标识符对大小写敏感,所以a
和A
是两个不同的标识符。
命名规则:
- 第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号(
$
)和下划线(_
)。 - 第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字
0-9
。
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。
if else
if
结构先判断一个表达式的布尔值(true or false),然后根据布尔值的真伪,执行不同的语句。
1 | if (表达式) { |
switch
多个 if ...else
连在一起使用的时候,可以转为是使用 switch
结构。
1 | switch (fruit) { |
三元运算符
1 | (条件) ? 表达式1 : 表达式2 |
逻辑运算符
逻辑与运算(&&)是 AND 布尔操作。只有两个操作数都为 true 时,才返回 true,否则返回 false。具体描述如表所示。
第一个操作数 | 第二个操作数 | 运算结果 |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
逻辑与是一种短路逻辑,如果左侧表达式为 false,则直接短路返回结果,不再运算右侧表达式。运算逻辑如下:
- 第 1 步:计算第一个操作数(左侧表达式)的值。
- 第 2 步:检测第一个操作数的值。如果左侧表达式的值可转换为 false(如 null、undefined、NaN、0、””、false),那么就会结束运算,直接返回第一个操作数的值。
- 第 3 步:如果第一个操作数可以转换为 true,则计算第二个操作数(右侧表达式)的值。
- 第 4 步:返回第二个操作数的值。
1 | console.log(typeof ({} && true)); //返回第二个操作数的值 true的类型:布尔型 |
**辑或运**算`||`是布尔 OR 操作。如果两个操作数都为 true,或者其中一个为 true,就返回 true,否则就返回 false。
1 | a = a || 100 |
while
While
语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块。
1 | while (条件) { |
1 | // 例 死循环 |
for
1 | for (初始化表达式; 条件; 递增表达式) { |
1 | // 例 |
for in
for/in 语句是 for 语句的一种特殊形式。参考
1 | for ( [var] variable in <object | array){ |
1 | // 使用 for/in 语句遍历数组,并枚举每个元素及其值。 |
break 和 continue
break 语句能够结束当前 for、for/in、while、do/while 或者 switch语句的执行。
continue 语句用在循环结构内,用于跳过本次循环,继续执行下一次循环。
label
标签
1 | foo: { |