表达式与语句
表达式
add(1,2)
console.log(3)
console.log
的返回值为其本身console.log(3)
返回值为undefined,打印3
语句
var a = 1
两者的区别
- 表达式一般都有值,语句有也可能没有
- 语句一般会改变环境(声明,赋值)
- 上述两句话并不是绝对的
大小写敏感
var a与var A不同
object与Object不同
空格
大部分空格没有实际意义,加回车大部分时候也不影响
只有一个地方不能加回车,那就是在return后面
这样写会让系统在return后面加;返回undefined
标识符
第一个字符,可以是Unicode字母或$或_或中文
后面的字符,除了上述字符外,还可以使用数字
所有的变量名都是标识符
注释
单行://
多行:/ /
区块block
作用就是将代码包在一起,例如:
{
let a = 1
let b = 2
}
常常与if/for/while合用
if语句
语法
if(表达式){语句1}else{语句2}
{}在语句只有一句的时候可以省略,不建议这样做
- 变态情况
表达式里可以非常变态,如a=1 //这里的a=1是赋值,而不是表达式
语句1里可以非常变态,如嵌套的if else
语句2里可以非常变态,如嵌套的if else
缩进也可以很变态,如试题常常下套
a=1
if(a===2)
console.log(‘a’)
console.log(‘a等于2’)
这里要注意没有带{},所以if只能管到console.log(‘a’)这里为止,下面一句跟if语句无关 使用最没有歧义的语法
if(表达式){
语句
}else if(){
语句
}else{
语句
}
次推荐使用的写法,多用于函数
function fn(){
if(表达式){
return 表达式
}
if(表达式){
renrurn 表达式
}
return 表达式
}
switch语句
语法
switch(fruit){
case "banana":
// ...
break;
case "apple":
// ...
break;
default:
// ...
}
break
- 大部分时候,省略break会导致整个语句错误
- 少部分时候,可以利用break写语句
问号冒号表达式
表达式1?表达式2:表达式3
当表达式1为真时,执行表达式2;当表达式1为假时,执行表达式3
&&短路逻辑
A&&B&&C&&D 取第一个假值或D,并不会取true/false
||短路逻辑
A||B||C||D 取第一个真值或D,并不会取true/false
while循环
语法
while(表达式){语句}
- 判断表达式的真假
- 当表达式为真,执行语句,执行完在判断表达式的真假
- 当表达式为假,执行后面的语句
其他还有do…while,不常使用
for循环
语法
for(语句1;表达式2;语句3){
循环体
}
- 先执行语句1
- 然后判断表达式2
- 如果为真,执行循环体,然后执行语句3
- 如果为假,直接退出循环,执行后面的语句
break和continue
- break:退出当前所有循环(退出最近的循环)
- continue:退出当前一次循环
label语句
可使用一个标签来唯一标记一个循环,然后使用 break
或 continue
语句来指示程序是否中断循环或继续执行。
语法
foo:{
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2);
结果为打印1,2
试题
{
foo:1
}
如上所述是什么?
- 有一个代码块,里面有一个标签foo,标签foo里面的值为一