表达式与语句
1.表达式
1+2表达式的值为3
add(1,2)表达式的值为函数的返回值
console.log表达式的值为函数本身
console.log(3)表达式的值为undefined
2.语句
var a = 1 是一个语句
3.表达式和语句的区别
表达式一般都有值,语句可能没有
语句一般会改变环境(声明,赋值)
4.备注
JavaScript大小写敏感
大部分空格回车没有实际意义,但renturn后不能回车
标识符
1.规则
第一个字符可以是Unicode字母或$或_或中文
后面的字符除了以上的还可以是数字
2.变量名是标识符
var _ = 1
var $ = 2
var __ = 3
var 你 = "hi"
3.常见报错
Uncaught SyntaxError : Invalid or unexpected token
未被捕获的语法错误:不合法的或未被期待的字符串
if语句
1.语法
if(表达式){语句1}else{语句2}
{}在与剧中只有一句时可以省略
2.示例情况
var a=2
if(a=1){
console.log('1')
}else{
console.log('!1')
}
结果为1,一个=为赋值 判断用===
var a=1
if(a===2)
console.log('a')
console.log('a等于2')
结果为 a等于2 , 第一个{}被省略,被省略的{}只管第一个语句
switch语句
1.语法
switch(fruit){
case "banana":
break;
case "apple":
break;
default:
}
不写break就凉凉了
?:表达式
1.语法
表达式1 ? 表达式2 : 表达式3
2.示例情况
function max(a,b){
if(a>b) return a;
else return b;
}
等价于
function max(a,b){
return a>b ?a :b
}
如果n>0,return n,否则return -n
function abs(n){
return n>0 ?n :-n
}
&&短路逻辑
1.逻辑
A && B && C && D
取第一个假值或D,并不取true或false
2.示例
if(window.f1){
console.log('f1存在')
}
等价于
window.f1 && console.log('f1存在')
||短路逻辑
1.逻辑
A || B || C || D
取第一个真值或D,并不取true或false
2.示例
if(a){
a=a
}else{
a=100
}
等价于
a = a || 100
while循环
1.语法
while(表达式){语句}
判断表达式的真假
当表达式为真,执行语句,执行完再次判断表达式的真假
当表达式为假,执行后面语句
2.注意示例情况
var a=0.1
while(a!==1){
console.log(a)
a=a+0.1
}
浮点数不精确,可能出现0.9999 1.77777 跳过1,进入死循环
for循环
1.语法
for循环是while循环的方便写法
for(语句1;表达式2;语句3){
循环体
}
先执行语句1,然后判断表达式2
如果为真,执行循环体,然后执行语句3
如果为假,直接退出循环体,然后执行后面语句
2.示例情况
for(var i=0;i<5;i++){
console.log(i)
}
打印出 0,1,2,3,4
i的值为 5
for(var i=0;i<5;i++){
setTimeout(()=>{
console.log(i)
},0)
}
打印出5个5,定时器执行5次
break和continue
1.break 退出所有循环
for(var i=0;i<10;i++){
if(i%2===1){
break
}
}
i的值为1
2.continue 退出当前一次循环
for(var i=0;i<10;i++){
if(i%2===1){
continue
}else{
console.log(i)
}
}
打印出 0,2,4,6,8
3.特殊情况示例
for(var i=0;i<10;i++){
for(var j=100;j<110;j++){
if(i===5){
break
}
}
console.log(i)
}
打印出0-9 break只退出最近一个{} 外面的还要执行
lable语句
1.语法
{a:1}不是对象,是一个lable,返回值为1
foo:{
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2);
打印出 1,2