JS语法
学习js要取其精华,去其糟粕
1.表达式与语句
表达式
- 1 +2表达式的值为3
- console.log表达式的值为函数本身
- console.log3)表达式的值为多少? undefined
语句
- var a=1是一个语句
二者的区别
- 表达式一般都有值,语句可能有也可能没有
- 语句一般会改变环境(声明、赋值)
- 上面两句话并不是绝对的
function fn(){
return
3;
} //这样写会返回undefined return后面不能加回车
2.标识符
规则
- 第一个字符,可以是 Unicode字母或$或_或中文
- 后面的字符,除了上面所说,还可以有数字
变量名是标识符
- var _=1
- var $ =2
- var________=6
- var 你好 = "hi"
3.区块
就是把代码包在一起
{
let a = 1;
let b = 2;
}
经常与if,for,while使用
4.if语句
语法
- if(表达式){语句1}else {语句2}
- 在语句只有一句的时候可以省略,不建议这样做
变态情况
- 表达式里可以非常变态,如a= 1
- 语句1里可以非常变态,如嵌套的if else
- 语句2里可以非常变态,如嵌套的if else
- 缩进也可以很变态,如面试题常常下套
a = 1;
if(a === 2)
console.log("a");
conslole.log("a等于2");
swith语句
语法
switch (fruit) {
case "banana":
// ...
break; // 如果不加break在符合此条件的情况下会执行这个下面的所有情况
case "apple":
// ...
break;
default:
// ...
}
5.三目运算符
又称问号冒号表达式
var a = n > 0? 100:200; // 如果n大于零给a赋值100,反之200
6.&& (与)短路逻辑 和 ||(或) 短路逻辑
A&&B&&C&&D会取第一个假值或D,并不会取true / false,因为在JS中好多的值都能被隐式转换为布尔值
常用写法
console && console.log && conslole.log('h1'); //早期用于兼容IE
A||B||C||D 会取第一个真值或D
常用写法
a = a || 100; // 判断a是否存在,不存在则赋保底值
7.while循环 与 for 循环
while循环语法
- while(表达式){语句}
- 判断表达式的真假
- 当表达式为真,执行语句,执行完再判断表达式的真假
- 当表达式为假,执行后面的语句
var a = 0.1;
while(a !== 1){
a = a + 0.1;
} // 这是一个死循环,因为浮点数相加是不精确的
for循环语法
for(语句1; 语句2; 语句3){ // 一般语句1为初始条件,语句2为判断,语句3为自增加
循环体;
}
- 先执行语句1
- 然后判断表达式2
- 如果为真,执行循环体,然后执行语句3
- 如果为假,直接退出循环,执行后面的语句
lable 语法
标签,用来标记一个代码块
foo: {
var a = 1;
conslole.log(a);
}