语句与表达式
语句
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
}
// B 是 A 的保底值
A = A || B
a = 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
它不是对象