Javascript运算符以及分支语句

132 阅读2分钟

01-JS的算术运算符

/ + - * / % /(加 减 乘 除 取余)

隐式转换:js内部帮我们转换方法有:- * / == != 减 乘 除 等于 不等于

显性转换:自己手动转换数据类型

除了加法数据类型不是 number类型时 会进行拼接,其他都不会拼接,会进行隐式转换。

        // console.log(1 + 2)  // 3
        // console.log(1 + '2')    // 12
        // console.log(2 - 2)  // 0
        // console.log(2 - '2')  // 2 - '2'    --> 2 -2    == 0
        // console.log(1 * 3)  // 3
        // console.log(1 * '3')  // 1 * '3'    --> 1 * 3   == 3
​
        // console.log(3 / 1)  // 3
        // console.log(3 / '1')  // 3 / '1'    --> 3 / 1   == 3
​
        // console.log(7 % 2)  // 1
        // console.log(7 % '2')  // 7 % '2'    --> 7 % 2   == 1

02-Js的赋值运算符(为了运算;可以不用;作用是简化代码量)

赋值运算符:(+=、-=、/=、%=)

  • a+=10 等价于a=a+10
  • a-=10 等价于a=a-10
  • a*=10 等价于a=a * 10
  • a%=10 等价于a=a%10

03- Js的比较运算符

比较运算符:> < >= <= == === != !==

(大于 小于 大于等于 小于等于 等于 全等 不等 不全等)

  • ==与===作用一样,用于比较来个两侧数据是否相等。
  • == 只对比数据,不对比数据类型。
  • === 不仅对比数据,而且也对比数据类型

== 在对比数据时,两侧数据不同,比如,一侧是数字,一侧是字符串,会进行隐形转换

        // console.log(2 == 2) // true
        // console.log(2 === 2) // true
        // console.log(2 == '2') // true
        // console.log(2 === '2') // false
  • != 与 !==作用相同,对比两侧数据是否相同,相同时返回false,不相同返回true
  • != 只对比数据,不对比数据类型。(会进行隐形转换,转换成相同类型在对比)
  • !==不仅对比数据,而且也对比数据类型
        // console.log(2 != 2) // false
        // console.log(2 !== 2) // false
        console.log(2 != '2') // false
        console.log(2 !== '2') // true

04-js的逻辑运算符

逻辑运算符:&& || !

() 大于 ++ -- ! 大于 * / % + - 大于 > >= < <= 大于 == != === !== 大于 && || 大于 = 大于,

逻辑与 &&

语法:变量1 && 变量2/表达式1 && 表达式2

返回方式:

前一个为真,就返回后一个

前一个为假,就返回第一个

// var bo = true && false  // 前一个为真, 返回后一个, 所以会把 false 返回
// var bo1 = false && true  // 前一个为假, 直接返回前一个, 所以会把 false 返回
// console.log(bo)     // false
// console.log(bo1)    // false

逻辑或 ||

返回方式:

前一个为真,返回左侧

前一个为假,返回右侧

逻辑非 !

作用:改变变量值的布尔型

05-js的自增与自减运算符

自增与自减:变量名前后加上++ --

自增分为 前置++ 与 后置++

前置++:

var b = ++a

1.先给a自增1,a的值为1

2.参与周围表达式与运算,把a的值给赋给 变量

后置++ :

var b = a++

1.把a的值先赋给变量,(此时还没有自增)

2.自增1

自减分为前置-- 与 后置--

前置--:

var b = --a

1.先给a自减1,a的值为-1

2.参与周围表达式与运算,把a的值给赋给 变量

后置-- :

var b = a--

1.把a的值先赋给变量,(此时还没有自减)

2.自减1

06-分支语句

if 语句

语法:if () {当条件为真时,执行的代码}else{当前面的条件都为假时,会执行else}

        var a = 200
​
        if (a > 1) {
            console.log(1)
        } else if (a == 2) {
            console.log(2)
        } else if (a == 3) {
            console.log(3)
        } else {
            console.log(100)
        };
​
  • if 判断 * 从上往下依次检查, 查询是否满足条件 * 如果满足, 则仅执行当前分支, 其他不执行 * 如果不满足, 则会进行下一个 if 的判断, 成功则执行, 不成功继续往下执行 * 直到 最后一个 if 成功则执行, 不成功则不执行 * 最后 查看是否有 else 分支, 如果有, 且前边所有的 if 条件都为假 此时 会执行 else 分支

07-switch--case--default

语法:

switch (条件) {
      case 21:
          满足 case 1 时, 执行的代码
          break;
      case 2:
          满足 case 2 时, 执行的代码
          break;
    default:
        上述条件都不满足,执行。
      
 }

注意:switch case在做对比的时候,使用的严格的 全等,也就是会对比数据类型。

default: 上述条件都不满足,执行。

switch 的穿透性:当case后没有跟随break时,会从第一个满足条件的case开始执行,一直到最后一个 或者出现break

var num = 3
        switch (num) {
            case 1:
                console.log('现在是 1月')
            case 2:
                console.log('现在是 2月')
            case 3:
                console.log('现在是 3月')
            case 4:
                console.log('现在是 4月')
            case 5:
                console.log('现在是 5月')
                break;
            case 6:
                console.log('现在是 6月')
            case 7:
                console.log('现在是 7月')
        }

打印的结果是

08-三元表达式(三目表达式)

语法:条件 ? 条件为真时执行(只能一行) : 条件为假时执行(只能一行)

true ? console.log('条件为真') : console.log('条件为假')

案例1

案例2:通过用户输入的年份和月份,计算出本月是多少天 (使用switch)

var year = 2022
var day;
var m = 2; 
swtich (m){
	case 1;
	case 3;
	case 5;
	case 7;
	case 8;
	case 10;
	case 12;
		day = 31
		break;
	case 2;
	case 4;
	case 6;
	case 9;
	case 11;
		day = 30
		break;
    case 2;
    	if (year % 4 = 0 && year % 100 !== 0 ||year % 400 ==0){
        day = 29 //是闰年
        }else{
            day = 28 //平年
        }
    break;	
}

console.log(year + "年" + m +'月有' + day + '天')