04-JavaScript操作符

第4章 操作符

表达式:值和操作符,运算会有一个结果。
同时,表达式中的每个数值及部分表达式,又称为子表达式。

4.1 算术运算

+ - * / %(取余或取模)

4.2 一元运算符

一元运算符:只有一个操作数的运算符,一元运算会直接修改原始变量的数据。

++ – ! 包含三个运算符

二元运算:两个操作的运算符,如:5 + 6

规则

前置++(–):先加(减)后使用;
后置++(–):先使用后加(减);

    var a = 1; 
    var b = ++a + ++a; 
    console.log(b); //5
    
    var a = 1; 
    var b = a++ + ++a; 
    console.log(b);//4
    
    var a = 1; 
    var b = a++ + a++; 
    // console.log(b);  // 3
    
    var a = 1; 
    var b = ++a + a++; 
    console.log(b);//4

4.3 逻辑运算符

  • && 与 左边为真,则取右边;左边为假,则取左边
  • || 或 左边为真,则取左边;左边为假,则取右边
  • ! 非 取反
var a = 1;
var b = 2;
var c = 0;

console.log(a || b); //1
console.log(b || a); //2
console.log(c && a); //0
console.log(a || c && b); //1

// JS逻辑运算中的逻辑或和逻辑与的运算结果:
// 决定整个表达式的子表达式的值

4.4 关系运算符

< >
<= >=
== !=
=== !==

=的区别:==只进行值比较,===类型和值都相等时,则相等

    var result = '55' == 55;  	// true
    var result = '55' === 55; 	// false 值相等,类型不相等
    var result = 55 === 55; 	// true

4.5 赋值运算符

注意与数学符号的差别:

= += -= *= /= %=

    var num = 0;
    num+=5;  //相当于,  num = num + 5;

4.6 运算符优先级

JavaScript 运算符优先级,是描述在计算机运算计算表达式时执行运算的先后顺序。 先执行具有较高优先级的运算,然后执行较低优先级的运算。 例如,我们常说的先执行相乘和除,再执行加减运算

优先级运算符说明结合性
1[]、.、()字段访问、数组索引、函数调用和表达式分组从左向右
2++ – -~!delete new typeof void一元运算符、返回数据类型、对象创建、未定义的值从右向左
3*、/、%相乘、相除、求余数从左向右
4+、-相加、相减、字符串串联从左向右
5<<、>>、>>>左位移、右位移、无符号右移从左向右
6<、<=、>、>=、instanceof小于、小于或等于、大于、大于或等于、是否为特定类的实例从左向右
7==、!=、===、!==相等、不相等、全等,不全等从左向右
8&按位“与”从左向右
9^按位“异或”从左向右
10|按位“或”从左向右
11&&短路与(逻辑“与”)从左向右
12||短路或(逻辑“或”)从左向右
13? :条件运算符从右向左
14=、+=、-=、*=、/=、%=、&=、=、^=、<、<=、>、>=、>>=混合赋值运算符
15,多个计算按优先级计算,然后从右向左
优先级从高到底
1. ()  优先级最高
2. 一元运算符  ++   --   !
3. 算数运算符  先*  /  %   后 +   -
4. 关系运算符  >   >=   <   <=
5. 相等运算符   ==   !=    ===    !==
6. 逻辑运算符 先&&   后||
7. 赋值运算符

4.7 案例分析

更新于2020.07.26

案例1:入职薪水10K,每年涨幅入职薪水的5%,50年后工资多少?

/*
      第一年:10000                                                   n-1 = 0
      第二年:10000(1+0.05);                                          n-1 = 1
      第三年:10000(1+0.05) + 10000(1+0.05)*0.05 = 10000(1+0.05)^2;   n-1 = 2
      ……
      第n年:10000(1+0.05)^(n-1);                                     n-1 = 49    
  */

var salary = 10000;
//50年后,小明的工资是:109213.33129289238
console.log(`50年后,小明的工资是:${10000 * Math.pow(1 + 0.05, 50 - 1)}`); 

案例2:为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?

var time = 89;
var hour = time % 24;
var day = Math.floor(89 / 24);
console.log(`战士们一共工作了${day}${hour}个小时`); //战士们一共工作了3天17时

案例3 小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。

/*      
      它需要一个程序将华氏温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。
      提示:摄氏度与华氏度的转换公式为:摄氏度 = 5/9.0*(华氏度-32) 
  */

var Fahrenheit = 80;
var centigrade = (5 / 9.0) * (Fahrenheit - 32);
console.log(`美国当前的温度是:${centigrade}℃`); // 美国当前的温度是:26.666666666666668℃

案例4:给定一个三位数,分别把这个数字的百位、十位、个位算出来并显示。

var num = 478;
var hundred = parseInt(num / 100) % 10;     //取得百位,求余后得百位
var decade = parseInt((num / 10) % 10);     //取得百位和十位,求余后得十位
var single = num % 10;                      //取得三位数,求余后得个位
// 这个三位数的百位是:4,十位是:7,个位是:8
console.log(
    `这个三位数的百位是:${hundred},十位是:${decade},个位是:${single}`
);

var num = 478;
function showPosition(num) {
    // 判定输入num是否是数字
    if (typeof num == undefined && typeof num != 'number') return;
    // 将数字转为字符串,计算循环次数
    let len = (num + '').length; 
    // 定义一个空数组,用于存放多位数的每位数字
    let arr = [];
    for (let i = len; i > 0; i--) {
        //  依次获取多位数的最高位,次高位,……个位。
        arr.push(parseInt(num / Math.pow(10, i - 1) % 10));
    }
    return arr;
}

console.log(showPosition(num));

总结:
操作符的使用,基本数学运算,一元运算符自增自减及前置后置的区别,逻辑运算符及取值,关系比较运算符,赋值运算符,运算符优先级;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值