三、JavaScript表达式与操作符

194 阅读2分钟

算数表达式

运算符描述示例
+加法运算符x + y 表示计算 x 加 y 的和
-减法运算符x - y 表示计算 x 减 y 的差
*乘法运算符x * y 表示计算 x 乘 y 的积
/除法运算符x / y 表示计算 x 除以 y 的商
%取模(取余)运算符x % y 表示计算 x 除以 y 的余数

可以通过括号来改变运算顺序 image.png

加号的两种作用

image.png

取余运算

image.png

隐式类型转换

在js中,当运算符在运算时,如果两边数据不统—,就无法计算,这时编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算,这种无需程序员手动转换的方式就称为隐式类型转换。

image.png 3 + '4' 就变成连接符了,而不是隐式转换

image.png

image.png

image.png

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        console.log(5 - '5');
        console.log('5' * false);
        console.log(5 + '5');
    </script>
</body>

</html>

image.png

IEEE754

image.png

.toFixed( ) 方法

  • 一个参数
  • 表示保留 几位 小数
  • 保留过后是字符串

image.png

幂、开根号 (内置构造函数)

Math.pow( )

Math.sqrt( )

image.png 负数不能开平方

向上取整、向下取整

Math.ceil( )

Math.floor( )

一个数正数情况下,Mach.floor( ) 与 parseInt( ) 是一样的

  • ceil 天花板

image.png

计算正方形面积

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 方法1
        // var w = Number(prompt('请输入正方形的宽高'));
        // alert('正方形的面积为:' + Math.pow(w,2));

        // 方法2
        var w = Number(prompt('请输入正方形的宽高'));
        document.write('正方形的面积为:' + w * w);
    </script>
</body>
</html>

关系运算符

image.png

image.png

image.png

相等(==) 和 全等(===)

==

  • 通过隐式转换后,判断值是否相等

===

  • 先判断类型是否相同,再比较值是否相等

image.png

image.png

NaN不自等

NaN作为一个特殊的数字类型值,它在用==比较的时候也有特殊的结果

image.png

isNaN( )函数

  1. 先将需判断的值转换为number (隐式转换)
  2. 再判断值是否为NaN
  • 返回true 说明不是一个数(number)
  • 返回false 说明是一个数(number)

image.png 注意

image.png

特殊值的相等

undefined == null; // true
null == undefined; // true
undefined === null; //false
null == 0; // false
NaN == NaN; // false
NaN === NaN; // false

image.png

不相等(!=) 和 不全等(!==)

image.png

逻辑表达式

image.png

非运算(!)

image.png

本身就为负性的值: 0undefined''(空字符串) image.png

与运算(&&)

  • 有一个假便是是假
  • 只有全是真才是真

image.png

或运算( || )

  • 只要有真便是真
  • 全是假才是假

image.png

短路计算

逻辑与 &&

image.png

image.png

逻辑或 ||

image.png

image.png

image.png

逻辑运算顺序

逻辑或(||) 最后计算

image.png

赋值表达式

快捷赋值

image.png

image.png

image.png

image.png

var x = 10;
x += 20;
console.log(x);  // 输出:30
var x = 12,
    y = 7;
x -= y;
console.log(x);  // 输出:5
x = 5;
x *= 25;
console.log(x);  // 输出:125
x = 50;
x /= 10;
console.log(x);  // 输出:5
x = 100;
x %= 15;
console.log(x);  // 输出:10

自增/自减运算符

image.png

image.png

var x;

x = 10;
console.log(++x);  // 输出:11
console.log(x);    // 输出:11

x = 10;
console.log(x++);  // 输出:10
console.log(x);    // 输出:11

x = 10;
console.log(--x);  // 输出:9
console.log(x);    // 输出:9

x = 10;
console.log(x--);  // 输出:10
console.log(x);    // 输出:9

综合表达式

image.png

image.png

判断闰年(练习)

image.png

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var year = Number(prompt('请输入年份'));
        if ((year % 100 != 0 && year % 4 == 0) || (year % 400 == 0 && year % 100 == 0)) {
            alert('是闰年');
        } else {
            alert('不是闰年');
        }
    </script>
</body>

</html>

习题

var a = 3;
var b = 4;
alert(a++ + b++ + ++a + ++b);

image.png

答案 3 + 4 + 5 + 6 = 18

总结图

image.png

5fe187f10abd27b712000200.gif