逻辑运算符
&& || !
&& 全真为真,有假则假 &&是一个惰性的运算符(短路操作符)
|| 全假为假,有真则真 ||也是一个惰性运算符
流程控制
var box = 12; if (box > 10) { //可以接受一个表达式,一个布尔类型的值,以及其他类型的值,但最终会接受一个布尔类型的值 //判断条件为真时执行的代码体 console.log("这个数字大于10") }
1、if (条件表达式) {} 条件表达式结果是一个boolean类型的
2、if () {} else {}
3、if () {} else if {} else {}
三元运算符
表达式 ? 成立时执行的代码 : 不成立时执行的代码
switch case
在写switch case的时候,大家一定要注意case里面的break必须要写上,不写会发生case穿透,在该语句中所有的case都相当于===的比较操作。
作用:多在于进行一个等值的比较运算
循环
break:跳出整个循环,执行循环体之后的代码
continue:跳出本次循环,执行下一次循环
当循环中遇到它们两个,它们之后的代码都不再执行。
es6以前,js只有两种作用域:全局和函数,所以i可以在循环体外的任何位置访问。
for in 不但可以循环自身的键值对,还可以循环父级对象上的键值对。
当一个属性自身存在并且父级也存在,那么只会循环自身的。
每一次循环,是循环对象的一个键值对,直到将该对象循环完毕。
item 代表当前对象的属性名
使用不多
do{ // 循环体 } while (判断条件);
while (判断条件) { // 循环体 }
先执行判断条件,再执行循环体。
for...in 语句是一种精准的迭代语句,可以用来枚举对象的属性。
for(var 变量 in 对象) item在每次循环的时候都是属性名
var obj = { name: "king", age: 18 }; for (var item in obj) { console.log(item); console.log(obj[item]); //注意:这个地方不能用.运算符,只能使用[] }
var box = 12; function test() { i = 18; //省略var关键字,该变量会成为一个全局变量 console.log(box); } test(); console.log(i);
当没有显示的进行return时,函数会默认的返回undefined
function test() { var box = 15; if (box >= 18) { return "已成年"; } else { return "未成年"; } } console.log(test());
定义函数时可以指明形参,调用函数传递进来的是实参
function add(a, b) { console.log(a); console.log(arguments); var a = arguments[0]; console.log(a); }
函数实际接受参数的是arguments(类数组对象)