JavaScript学习笔记(三)

1.5 运算符

1.5.1 定义
对值进行运算并得到结果
1.5.2 作用
告诉程序执行特定算术或逻辑操作的符号
1.5.3 分类
功能:算术运算符,逻辑运算符,位运算符,关系运算符
操作数个数:单目运算符,双目运算符,三目运算符
1.5.4 运算符的结合性
左结合性:从左至右运算
右结合性:从右至左运算

1.6 算术运算符

+
  • 所有值和NaN做该运算,结果都是NaN
  • 非数值型与数值型运算时会先转换为数值型
  • 任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作
-
  • 所有值和NaN做该运算,结果都是NaN
  • 非数值型与数值型运算时会先转换为数值型
  • 字符串做减法也会转换为Number
*
  • 所有值和NaN做该运算,结果都是NaN
  • 非数值型与数值型运算时会先转换为数值型
  • 字符串做乘法也会转换为Number
/
  • 所有值和NaN做该运算,结果都是NaN
  • 非数值型与数值型运算时会先转换为数值型
  • 字符串做除法也会转换为Number
  • 任何数除 0 ,都会得到Infinity(无穷大)
%
  • 所有值和NaN做该运算,结果都是NaN
  • 非数值型与数值型运算时会先转换为数值型
  • 字符串做取余也会转换为Number
  • m%n 求余,相当于m/n 获取余数
    m为0 >>> 结果为0
    n为0 >>> 结果为NaN
    m>n >>> 正常运算
    m>> 结果为m

1.7 一元运算符

1.7.1 “+”运算符
  • +正号不会对数字产生任何影响
  • 对于非Number类型的值,会将先转换为Number,然后再运算
1.7.2 “-”运算符
  • -负号可以对数字进行负号的取反

      eg:  
      var num = 456;
      num = -num;
      console.log(num); // -456
    

1.8 赋值运算符

1.8.1 简单赋值运算符
  • 格式: 变量 = 数据
  • 赋值运算符左边只能是变量
  • 多个赋值运算符可以组成 赋值表达式, 赋值表达式具备右结合性
1.8.2 复合赋值运算符
  • 分类:+= -= *= /= %=
  • 格式: 变量 复合赋值运算符 表达式; 如: a *= 1 + 2;
  • 由于赋值运算符是右结合性, 所以会先计算等号右边, 然后再进行复合运算

1.9 自增、自减运算符

  • ++/- -前缀表达式:先变后用
  • ++/- -后缀表达式:先用后变
    注意点:+ +/- -无论在前在后,变量经过运算都会发生变化

1.10 逻辑运算符(&&、||、!)

1.10.1 逻辑与
  • 一假则假

  • 第一个值为true,会检查第二个值
    true && alert(“我来了!!”); //会输出 我来了

    第一个值为false,不会检查第二个值
    false && alert(“我没有来!!”); //不会输出 我没有来

  • 对于非Boolean类型的数值, 逻辑与会自动将其转换为Boolean类型来判断

  • 如果条件A不成立, 则返回条件A的数值本身

  • 如果条件A成立, 不管条件B成不成立都返回条件B数值本身

1.10.2 逻辑或
  • 一真则真

  • 第一个值为false,则会检查第二个值
    false || alert(“123”); //会输出123

    第一个值为true,则不再检查第二个值
    true || alert(“123”); //不会输出123

  • 对于非Boolean类型的数值, 逻辑或自动会将其转换为Boolean类型来判断

  • 如果条件A不成立, 则不管条件B成不成立都返回条件B数值本身

  • 如果条件A成立, 则返回条件A的数值本身

1.10.3 逻辑非
  • 真变假,假变真
  • 两次取反同一值,值不变
  • 对非布尔值进行操作,则会将其转换为布尔值,然后再取反

1.11 关系运算符

  • 存在意义:在某些特定条件下,执行某一段特定代码

  • 在JavaScript中,条件成立称为“真”,条件不成立称为“假”,因此,判断条件是否成立就是判断条件的“真假”。

  • 对于非数值进行比较时,会将其转换为数值然后在比较

  • 如果符号两侧的值都是字符串时,不会将其转换为数字进行比较, 而会分别比较字符串中字符的Unicode编码

  • 比较两个字符串型的数字,可能会得到不可预期的结果,所以, 在比较两个字符串型的数字时,一定要转型( parseInt()、parseFloat()

      console.log(null == 0); // false
      console.log(undefined == 0); // false
      console.log(NaN == NaN); // false
    

/*
可以通过isNaN()函数来判断一个值是否是NaN
如果该值是NaN则返回true,否则返回false
*/

var num = NaN;
console.log(isNaN(num)); // true

// undefined 衍生自 null, 所以返回true

console.log(null == undefined); // true;
console.log(null === undefined); // false;

// == 判断值是否相等
// == 会进行数据类型转换

console.log("123" == 123); // true

// === 判断值和类型时候同时相等
// === 不会进行数据类型转换
console.log("123" === 123); // false在这里插入图片描述

1.12 逗号运算符

  • 在JavaScript中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把多个表达式连接起来组成一个表达式, 称为逗号表达式。

      var a, b, c, d;
      d = (a = 1 + 1,b = 3 * 4, c = 10 / 2);
      console.log(d); // 5
    

1.先计算表达式1, a = 2
2.再计算表达式2, b = 12
3.再计算表达式3, c = 5
4.将表达式3的结果返回给d

1.13 三目运算符

  • 格式: 条件表达式 ? 语句1 : 语句2;

  • 如果条件表达式为true,则执行语句1,并返回执行结果

  • 如果条件表达式为false,则执行语句2,并返回执行结果
    即:
    // 弹第一个
    true?alert(“语句1”) : alert(“语句2”);
    // 弹第二个
    false?alert(“语句1”) : alert(“语句2”);

  • 注意点:

    条件运算符?和:是一对运算符,不能分开单独使用
    如果条件的表达式的求值结果是一个非布尔值, 会将其转换为布尔值然后在运算

1.14 运算符的优先级

在这里插入图片描述

一个练习:

用户从键盘输入三个整数,找出其中最大的整数,并对其输出。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <script>
    var a1,a2,a3;
    a1 = +(window.prompt("请输入第一个数"));
    a2 = +(window.prompt("请输入第二个数"));
    a3 = +(window.prompt("请输入第三个数"));
    console.log((a1>a2 ? a1 : a2) > a3 ? (a1>a2 ? a1 : a2) : a3) ;

  </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值