表达式与语句
表达式
- 1+2 表达式的值为 3
- add (1,2) 表达式的值为函数的返回值(只有函数有返回值)
- console.log 表达式的值为函数本身
- console.log (3) 表达式的值为多少?
语句
二者的区别
- 表达式一般都有值,语句可能有也可能没有
- 语句一般会改变环境(声明、赋值)
大小写敏感(不要写错)
var a 和 var A 是不同的
object 和 Object 是不同的
function 和 Function 是不同的
空格
大部分空格没有实际意义var a = 1
和 var a=1
没有区别
加回车大部分时候也不影响
只有一个地方不能加回车,那就是 return 后面(面试喜欢考)
标识符
规则
第一个字符,可以是 Unicode 字母或$或_或中文
后面的字符,除了上面所说,还可以有数字
后面的字符,除了上面所说,还可以有数字
变量名是标识符
- var _ = 1
- var $ = 2
- var __ = 6
-
注释
好的注释
多写踩坑注释
-
不好的注释
把代码翻译成中文
- 过时的注释
-
区块block
把代码包在一起
{
let a = 1
let b = 2
}
if语句
语法
If(表达式){语句 1} else {语句 2}
-
变态情况
表达式里可以非常变态,如 a=1
- 语句 1 里可以非常变态,如嵌套的 if else
- 语句 2 里可以非常变态,如嵌套的 if else
缩进也可以很变态,如面试题常常下套
a = 1
if(a === 2)
console.log('a')
console.log('a等于2')
如果省略 { } ,if 只会管到第一句,也就是相当于
if(a === 2){
console.log('a')
}
console.log('a等于2')
推荐写法
switch语句(不推荐使用)
语法
break的坑
大部分时候,省略 break 你就完了
- 少部分时候,可以利用 break
问号冒号表达式/三元表达式
语法
表达式1?表达式2:表达式3&&
A && B && C && D
取第一个假值或 D
并不会取 true / false||
A || B || C || D
取第一个真值或 D
并不会取 true / false
while循环
语法
for循环
语法
setTimeout 表示过一会执行,看如下输出结果
但是如果用let,结果仍然是0,1,2,3,4
break 和 continue
break:退出所有循环(最近的循环)
continue:退出一次循环
label 语句
语法
用的很少,面试问到的概率5%
{
foo: 1
}
问:上面的东西是什么?
答:foo是一个label,语句是1