最近重新看书温顾Javascript基础旧知识,顺便用脑图记一下基础,并且将一些比较重要容易出错的知识点记录下来。
1 你所不知道的逻辑操作符(与 或 非)
逻辑与 &&
: 一系列值进行与操作,只要遇到布尔值为false的值,则返回这个操作数的值(切记,不是这个操作数的布尔值),同时终止当前的运算,如果是函数,且函数执行之后有return值,则返回这个函数return回来的值,若没有遇到,则返回最后一个值。
console.log(3 && 5 && 6) // 返回6,都是true,则返回最后一个
console.log(3 && 0 && 9) // 返回0
小应用
if (a) { do()} ====> a && do() // 如果a 是true就执行函数,如果a是false,就不会执行函数
逻辑或 ||
: 一系列值进行或操作,只要遇到布尔值为true的,则返回这个操作数的值。终止当前的运算。若直到最后一个值,都是false,则返回最后一个值。
console.log(3 || 5 || 6) // 返回3
console.log(0 || 0 || 9) // 返回9
console.log(0 || 0 || 0) // 返回0
逻辑非 !
:返回的是当前运算值的反布尔值。切记,这里的逻辑非操作与前面两个不一样,这里返回的是运算的逻辑值的反布尔值
console.log(!2) //输出false
2 break continue 与 return的区别
break
: 终止当前的循环,直接跳出循环
continue
: 直接停止当前的这次循环,但是会继续回去执行循环
return
: 一般是在函数体内部定义的,所以一般是终止当前函数的执行。不管return有没有返回值,都会终止return后面语句的执行。
for ( var i = 0; i <8;i++) {
if ( i == 3) break;
console.log(i)
} // 输出 0 1 2
for ( var i = 0; i <8;i++) {
if ( i == 3) continue;
console.log(i)
} // 输出 0 1 2 4 5 6 7
3 函数没有重载
js中的函数没有重载,但是可以通过函数内部的arguments
来实现函数的重载,通过判断变量的类型以及变量的数目来实现重载。
函数中实际传入的参数数目与形参的数目没有关系,不受影响。
如果实际传入的参数比形参少,则后面的形参值是undefined