1、表达式和语句
- 表达式是一组代码的集合,它返回一个值。
表达式 举例:
- 1+2表达式的值为3
- add(1,2)表达式的值为函数的返回值
- console.log表达式的值为函数本身
- console.log(3)表达式的值为多少?
语句举例:
- 语句var a = 1是一个语句
表达式与语句二者区别:
- 表达式一般都有值,语句可能有也可能没有
- 语句一般会改变环境(声明、赋值)
- 上面两句话并不是绝对的
2、标识符的规则
-
规则
- 第一个字符,可以是Unicode字母或$或_或中文
- 后面的字符,除了上面所说,还可以有数字
-
变量名是标识符
var_=1var $=2var____=6*var 你好='hi'
3、条件语句
3.1 if语句
if(表达式){ 语句 } else if (表达式){ 语句 } else{ 语句 }else代码块总是与离自己最近的那个if语句配对。
var m = 1;
var n = 2;
if (m !== 1)
if (n === 2) console.log('hello');
else console.log('world');
3.2 swich语句
switch (fruit) {
case "banana":
// ...
break;
case "apple":
// ...
break;
default:
// ...
}
大部分时候不能省略swich
3.3
A && B 短路逻辑
使用场景:
fn && fn(),先判断fn属性存不存在,如果不存在则直接返回,如果存在才执行后面fn方法
举例:
console && console.log && console.log('hi')含义是如果浏览器有console属性且有console.log属性,才执行 console.log('hi')语句。
A || B 短路逻辑
A || B含义是如果A不是真才执行后面的语句B等价于if(!A){B}else{}
使用场景:
A = A || B,B作为保底值,如果A不存在则返回B
举例:
var a = a || 100;//如果a存在则就是a,如果不存在则返回100(保底值)
A || B || C || D短路逻辑:取第一个真值或D,结果并不是true或者false
4、循环语句
4.1 while循环
循环语句用于重复执行某个操作,它有多种形式 While语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块
while (条件)
语句;
// 或者
while (条件) 语句;
复制代码
下面是while语句的一个例子。
var i = 0;
while (i < 100) {
console.log('i 当前为:' + i);
i = i + 1;
}
复制代码
上面的代码将循环100次,直到i等于100为止。 下面的例子是一个无限循环,因为循环条件总是为真。
while (true) {
console.log('Hello, world');
}
4.2for循环
for循环
•语法糖
for是while循环的方便写法
for(语句1;表达式2;语句3){ 循环体
}
先执行语句1
然后判断表达式2
如果为真,执行循环体,然后执行语句3
如果为假,直接退出循环,执行后面的语句
4.3break和continue 退出所有循环和退出当前一次循环
break退出整个循环
var i = 0;
while(i < 100) {
console.log('i 当前为:' + i);
i++;
if (i === 10) break;
}
复制代码
上面代码只会执行10次循环,一旦i等于10,就会跳出循环。 continue 退出当前本轮循环,,开始下一轮循环
var i = 0;
while (i < 100){
i++;
if (i % 2 === 0) continue;
console.log('i 当前为:' + i);
}
复制代码
上面代码只有在i为奇数时,才会输出i的值。如果i为偶数,则直接进入下一轮循环。
如果存在多重循环,不带参数的break语句和continue语句都只针对最内层循环。
4.4 标签(label)
JavaScript语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下。
- 语法:
label:
语句
复制代码
foo:{
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2);
复制代码
上面代码执行到break foo,就会跳出区块。
- 面试
{
foo:1
}
是一个number,结果为1