分支和循环

JS 的这俩玩意和其他语言没什么区别,分支都是用 ifelse ifelse 或者三目运算符 ?:,循环也就是 forwhile 以及 do while

分支

if 什么的我就不多说了,都一个样。主要是运算符和条件判断的内容。

判断

JS 中,在以下情况会被当作 false:

  • undefined
  • null
  • false
  • 0
  • '' (空字符串)

对比

由于 JS 是动态类型,所以对比就带着一些麻烦。

对比是否相等有两个运算符,一个是 == 另一个是 ===

== 运算符只会比较左右两侧的值,只要值相等,结果就是 true。

123 == '123'; // true
true == 'true'; // false
false == false; // true
undefined == undefined; // true
null == null; // true
null == undefined; // true

// 注意 NaN 不与任何值相等,包括自己
NaN == NaN; // false

而 === 会同时比较值和类型,只有两者都相同时,才是 true。

123 === '123' // false
null === undefined // false

不相等的对比也有两个:!=!== ,区别和上面的一样,!= 是值不相等,!== 是值和类型都不相等。

逻辑运算符

我现在就记得起这么几个要说的:!&&||?:

!

这个运算符的意思是取反。

&&(与)

&& 的意思是,当这个运算符左右两侧的语句都是 true 是就为 true,需要注意的是:在左侧的语句为 false 时,就不会执行右侧的语句。这个特性在之后会很常用。

||(或)

|| 就是两侧任意一侧为 true 就是true。和上面类似的,当左侧为 true 时,就不会执行右侧

"use strict"

let value = 1;

console.log(value); // 1
false && ++value;
console.log(value); // 1
true || ++value;
console.log(value); // 1
null && ++value;
console.log(value); // 1
null || ++value;
console.log(value); // 2

?:

?: 其实就是个 if 语句,只不过写得省了一点而已。

循环

循环和其他语言也差不多,不过注意的是,在循环中最好都是用 let 而不是 var。