04 JavaScript中的运算符

技术交流QQ群:1027579432,欢迎你的加入!

欢迎关注我的微信公众号:CurryCoder的程序人生

1.运算符

  • 运算符也称为操作符,是用于实现赋值、比较和执行算术运算等功能的符号。
  • JavaScript中常用的运算符有:
    • 算术运算符
    • 递增和递减运算符
    • 比较运算符
    • 逻辑运算符
    • 赋值运算符

2.算术运算符

  • 概念:算术运算使用的符号,用于执行两个变量或值的算术运算。


    算术运算符.png
  • 浮点数存在的精度问题:浮点数值的最高精度是17位小数,但在进行算术运算时,其精度远远不如整数。
  • 不要直接判断两个浮点数是否相等
    console.log(1 + 1);
    console.log(1 - 1);
    console.log(1 * 1);
    console.log(1 / 1);
    // 1. % 取余运算符(取模)
    console.log(4 % 2);  // 0
    console.log(5 % 3);  // 2
    console.log(3 % 5);  // 3
    // 2. 浮点数 复数运算里面会有问题
    console.log(0.1 + 0.2);  // 0.30000000000000004
    console.log(0.07 * 100); // 7.000000000000001
    // 3. 不能直接对浮点数进行相比较,
    var num = 0.1 + 0.2;
    console.log(num === 0.3);  // false
    
  • 怎么判断一个数能否被整除
    • 该数的余数是0就说明这个数能被整除,即取余运算符%的主要用途
  • 表达式和返回值
    • 表达式:是由数字、运算符、变量等以能求得数值的有意义排列方法所得的组合;简单理解:是由数字、运算符、变量等组成的式子
    // 表达式:由数字、运算符、变量等组成的式子,称为表达式
    console.log(1 + 1);  // 2就是返回值
    // 在程序中,2 = 1 + 1,将右边的表达式计算完毕,把返回值给左边
    var num = 1 + 1;
    

3. 递增和递减运算符

  • 如果需要反复给数字变量添加或减去1,可以使用递增++和递减--运算符来完成。
  • 在JavaScript中,递增++和递减--运算符既可以放在变量前面,也可以放在变量后面。放在变量前面时,称为前置递增(递减)运算符;放在变量后面时,称为后置递增(递减)运算符
  • 递增和递减运算符都必须和变量搭配使用
3.1 前置递增运算符
  • ++num前置递增,就是自加1,类似于num = num + 1,但是++num写起来更简单。
  • 使用口诀:先自加,后返回值
    // 1.想要一个变量自己加1, num = num + 1比较麻烦
    var num = 1;
    num = num + 1;  // ++num
    num = num + 1;
    console.log(num); // 3
    // 2.前置递增运算符, ++写在变量的前面
    var age = 18;
    ++age;  // 类似于 age = age + 1;
    console.log(age);
    // 3.先加1,后返回值
    var p = 10;
    console.log(++p + 10);  // 21
    
3.2 后置递增运算符
  • num++后置递增,就是自加1,类似于num = num + 1,但是num++写起来更简单。
  • 使用口诀:先返回原值,后自加
    // 后置递增运算符
    var num = 10;
    num++;  // num = num + 1;++num
    console.log(num);
    // 1.前置自增和后置自增如果单独使用,效果是一样的
    // 2.后置的自增 口诀:先返回原值,后自加1
    var age = 10;
    console.log(age++ + 10);  // 20
    
3.3 前置递增和后置递增小结
  • 前置递增和后置递增运算符可以简化代码的编写,让变量的值+1,比以前的写法更简单;
  • 单独使用时,运行结果相同;
  • 与其他代码联用时,执行结果会不同;
  • 后置:先原值运算,后自加(先人后己)
  • 前置:先自加,后运算(先己后人)
  • 开发中,大多数使用后置递增/递减,并且代码独占一行。例如:num++或num--;

4.比较运算符

  • 概念:比较运算符(关系运算符)是两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值true/false作为比较运算的结果
    比较运算符.png
  • =小结
    =小结.png
    console.log(3 >= 5);  // false
    console.log(4 <= 9);  // true
    // 1.程序中,等于号是==,默认转换数据类型 会把字符串型的数据转换为数字型,只要求值相等就可以!
    console.log(3 == 5);  //false
    console.log('curry' == 'nba'); // false
    console.log(18 == 18); // true
    console.log(18 == '18');  // true  重点!
    console.log(18 != 18);  // false
    // 2.程序中会有全等,一模一样。要求两侧的值并且数据类型完全一致才可以true
    console.log(18 === 18);  // true
    console.log(18 === '18'); // false
    

5.逻辑运算符

  • 概念:逻辑运算符是用来进行布尔值运算的运算符,它的返回值也是布尔值。后面开发中经常用于多个条件的判断
    逻辑运算符.png
    // 1.逻辑与:&& and 两边都为true,结果才是true;只有有一侧是false,结果就是false
    console.log(3 > 5 && 3 > 2);  // false
    console.log(3 < 5 && 3 > 2);  // true
    // 2.逻辑或:|| or  两边都为false,结果才是false;只有有一侧是true,结果就是true
    console.log(3 > 5 || 3 > 2); // true
    console.log(3 > 5 || 3 < 2); // false
    // 3.逻辑非 ! not
    console.log(!true);  // false
    
  • 短路运算(逻辑中断):当有多个表达式(值)时,左边的表达式值可以确定结果时,就不会再继续计算右边表达式的值。
    • 逻辑与
      • 语法:表达式1 && 表达式2
      • 如果第一个表达式的值为真,则返回表达式2;
      • 如果第一个表达式的值为假,则返回表达式1;
    • 逻辑或
      • 语法:表达式1 || 表达式2
      • 如果第一个表达式的值为真,则返回表达式1;
      • 如果第一个表达式的值为假,则返回表达式2;
    // 1.用布尔值参与的运算true && false == false
    // 2. 123 && 456是值或者表达式参与逻辑运算?
    // 3.逻辑与短路运算:如果表达式1结果为真,则返回表达式2;如果表达式1结果为假,那么返回表达式1
    console.log(123 && 456);  // 456
    console.log(0 && 456);  // 0
    console.log(0 && 1 + 2 && 456 * 1234389); // 0
    console.log('' && 1 + 2 && 456 * 1234389); // ''
    // 如果有空的或者否定的为假,其余是真的 0 '' null undefined NaN
    
    // 4.逻辑或短路运算:如果表达式1结果为真,则返回的是表达是1;如果表达式1结果为假,则返回表达式2
    console.log(123 || 456);  // 123
    console.log(123 || 789 || 893 * 34343);  // 123
    console.log(null || 8034 || 343 * 9934);  // 8043
    

6.赋值运算符

  • 概念:用来把数据赋值给变量的运算符。


    赋值运算符.png
    num = 10;
    // num = num + 1;  num++
    num = num + 2;  // num += 2
    console.log(num);
    var age = 2;
    age *= 3;
    console.log(age);
    

7.运算符优先级

运算符优先级.png
  • 一元运算符中的逻辑非优先级很高
  • 逻辑与比逻辑非优先级高;

8.资料下载

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容

  • 文章配套视频 https://study.163.com/course/introduction/10059730...
    撩课_叶建华阅读 2,240评论 1 9
  • 01javascript语法规范 <!DOCTYPE html> javascript语法...
    ouyangqinbin阅读 1,305评论 0 0
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    徵羽kid阅读 676评论 0 0
  • 变量 声明变量 命名变量区分大小写的语言第一个字符是字母或下划线_,数字不能作为第一个字符字符必须是字母,数字或者...
    flyingtoparis阅读 809评论 0 0
  • 对于普通工薪人员来说,固定工资意味着除了柴米油盐之外,能有的选择非常之少:抽不出时间去旅行、陪家人;没有多余的资金...
    三才生阅读 346评论 2 4