JS 语法

136 阅读2分钟

语句与表达式

语句

JavaScript一下执行一行,一般情况下,每一行就是一个语句。

var a = 1 + 1

表达式

指为了得到返回值的计算式。

1 + 1

前者主要为了进行某种操作,一般情况下不需要返回值;

后者则是为了得到返回值,一定会返回一个值。

标识符

第一个字符,可以是任意 Unicode 字母,以及美元符号($)和下划线(_)。

第二个及后面的字符,除了以上字符还可以使用数字。

var ___ = 1
var $ = 'a'
var 我的天 = 'oh my god'

注释

坏注释

告诉别人自己写了什么

把代码翻译成中文

// 放大图片
function enlargePicture(){
    ...
}

过时的注释

// 当前点击
function historicalRecords(){
    ...
}

发泄不满的注释

/*
    xxx公司太坑爹了
*/

好注释

告诉别人自己为什么这么写

踩坑注释

防止后来者再次出错

奇怪代码的注释

解释为什么要写这样看起来很不合理的代码

防止别人删代码

条件语句

if...else

常用,但大多数情况可以用其他更简单的语法替代

推荐写法

if (表达式) {
    语句
} else if (表达式) {
    语句
} else {
    语句
}
// return 会跳出函数,故不需要 else
function fn() {
    if (表达式) {
        return 表达式
    }
    if (表达式) {
        return 表达式
    }
    return 表达式
}

不推荐写法

不易阅读,不易 DEBUG

永远不要省略 {}

let a = 1
if(a === 2) {
    console.log(1)
    console.log(2)
}

switch

不推荐使用

不省略 break

大多数情况不能省略 break

省略 break

少数情况需要省略 break

switch(2):
case 1:
case 3:
console.log("单数")
break;
case 2:
case 4:
console.log("双数")

三元运算符 ?:

(条件) ? 表达式1 : 表达式2

条件为 true,返回表达式1,否则返回表达式2

n % 2 === 0 ? '偶数' : '奇数'

&&

常用写法

// 返回第一个假值或者最后一个值,不回返回 true / false
A && B
​
​
// fn 为真,调用 fn()
fn && fn()
1 && console.log(2)
​
if(aaa) {
    console.log(1)
}

||

常用写法

// 返回第一个真值或者最后一个值,不回返回 true / false
a || b
​
// if 版本
if(!a) {
  b
}
​
// BA 的保底值
A = A || Ba = a || 100
// if 版本
if(a) {
    a = a
}else {
    a = 100
}
​

while

while 用的较少,一般用 for

for

for 是 while 的语法糖

for (语句1; 表达式2; 语句3) {
    循环体
}
  • 先执行语句1
  • 再判断表达式2
  • 如果为真,执行循环体,然后执行语句3
  • 如果为假,退出循环,执行后面的语句

label

label(标签)用的非常少

label:
    语句

标签常与 break 和 continue 配合使用

a: {
    console.log(1);
    break foo;
    console.log('本行不会输出');
}
console.log(2);
// 1
// 2

面试题

{
    foo: 1
}

foo 是一个 label,语句是 1

它不是对象