前言:
   学习一门编程语言的基本步骤
 (01)了解背景知识
 (02)搭建开发环境
 (03)语法规范
 (04)常量和变量
 (05)数据类型
 (06)数据类型转换
 (07)运算符
7.运算符
 表达式:由运算符连接的操作数据,所组成的形式。
 运算符分为算数运算符,比较运算符,逻辑运算符,位运算符,赋值运算符,三目运算符
(1)算术运算符——math
        + (加)

  1. //加
  2. console.log(3+2);//

- (减)

  1. //减
  2. console.log(3-2);//

* (乘)

  1. //乘
  2. console.log(3*2);//

/ (除)

  1. //除
  2. console.log(3/2);//1.5

% (取余)隔行换色,判断是否为闰年

  1. //取余
  2. console.log(3%2);//
  3. console.log(2%3);//

++(自增)在原来的基础上加1

  1. //自增
  2. var a=1; //此时a值是1
  3. a++; //在原来的基础上加1,此时a值是2
  4. console.log(a); //获取加1之后的a,此时a值是2
  5. console.log(a++);//在a=2的基础上加1,此时a值为3,存在内存之中,
  6. console.log(a); // 重新获取a值,a值为3

--(自减)在原来的基础上减1

  1. //自减
  2. var b=3; //此时b值是3
  3. b--; //在原来的基础上减1,此时b值是2
  4. console.log(b); //获取减1之后的b,此时b值为2
  5. console.log(b--); //在b=2的基础上减1,此时b值为1,存在内存当中
  6. console.log(b); //重新获取b值,b值为1

console.log(a++);先打印a的值,在执行自增

  1. // 先打印a的值,在执行自增
  2. //1.声明一个变量
  3. var a=1;
  4. //此时a还是1,打印就是1,打印完后,在执行自增,这时候a变成2,存在内存当中
  5. console.log(a++);//输出为1
  6. //重新从内存中获取a的值
  7. console.log(a);//输出为2

console.log(++a);先执行自增,在打印a的值

  1. //先执行自增,在打印a的值
  2. //2.声明变量a
  3. var a=1;
  4. //先让a的值执行自增,此时a的值变成了2,然后在打印a的值就是2
  5. console.log(++a);//输出为2
  6. //重新获取值也是2
  7. console.log(a);//输出为2
  8.  
  9. //综合
  10. var num=3;
  11. //第一个num的值打印为3,但是内存为2,影响内存中的储存的值,然后后面的num取内存中的值,所以是1,3+1=4,
  12. console.log(num--+--num);//

(2)比较运算符——compare
        返回都是一个布尔型的值,如果数据类型不同,会发生数据类型的转换
        >     (大于)

  1. //> 大于
  2. console.log(3>4);//false

<     (小于)

  1. //< 小于
  2. console.log(3<4);//true

>=   (大于等于)

  1. //> 大于等于
  2. console.log(3>=4);//false

<=   (小于等于)

  1. //< 小于等于
  2. console.log(3<=4);//true

==   (等于)    比较两个值是否相等

  1. //== 等于 只比较值,不比较类型
  2. console.log(7=='7');//ture

!=    (不等于)

  1. //!=不等于
  2. console.log(3!=4);//true
  3. console.log(3!=3);//false
  4. console.log(3!='3');//false 仅比较值

=== (全等于) 不仅比较值,还会比较类型是否相等

  1. //=== 全等于 比较值和类型
  2. console.log(7==='7');//false

!==  (全不等于)

  1. //!==不等于
  2. console.log(3!==4);//true
  3. console.log(3!==3);//false
  4. console.log(3!=='3');//true 比较值和类型

数据类型的转换

  1. //数字类型转换 字符串转成了数字
  2. console.log(13>'10');//ture
  3. //两个字符串比较,比较的是首个字符的Unicode码,3——> 51 1——> 49 a——> 97
  4. console.log('3'>'10');//true
  5. console.log('张铁牛'>'张大柱');//true
  6. console.log('张'.charCodeAt()>'张'.charCodeAt());//false
  7. console.log('铁'.charCodeAt());//
  8. console.log('牛'.charCodeAt());//
  9. console.log('大'.charCodeAt());//
  10. console.log('柱'.charCodeAt());//

NaN和任何值比较(> < >= <= == === != !==),包括自身,都返回false。

  1. //NaN和任何值比较
  2. //3>NaN
  3. console.log(3>'10a');//false
  4. //3<NaN
  5. console.log(3<'10a');//false
  6. //3>=NaN
  7. console.log(3>='10a');//false
  8. //3<=NaN
  9. console.log(3<='10a');//false
  10. //3==NaN
  11. console.log(3=='10a');//false
  12. //3===NaN
  13. console.log(3==='10a');//false
  14. //NaN==NaN
  15. console.log(NaN==NaN);//false
  16. //NaN===NaN
  17. console.log(NaN===NaN);//false
  18. //3!=NaN
  19. console.log(3!='10a');//true
  20. //3!==NaN
  21. console.log(3!=='10a');//true

(3)逻辑运算符——logic
        and &&  并且       关联的两个条件都满足,结果是ture否则是false

  1. //并且 &&
  2. //判断一个人的工资是否在5000-8000支间
  3. var salary=7000;
  4. console.log(salary>=5000 && salary<=8000);//true
  5. //声明两个变量,分别保存用户名和密码,如果用户名为root,并且密码为123456,打印true,否者false。
  6. var uname="root";
  7. var password="123456";
  8. console.log(uname==="root" && password==="123457");//false

or     ||    或者      关联的两个条件满足其一,结果是ture,否者是false

  1. //或者 ||
  2. //判断是否满足让座标准,儿童12岁以下或者老人65岁以上
  3. var age=50;
  4. console.log(age<=12 || age>=65);//false
  5. //声明变量保存用户,如果使用用户名root或者使用手机号码18112345678,满足其一,打印true,否者false
  6. var uname="root";
  7. var uname="18112345678";
  8. console.log(uname==="root" || uname==="18112345678");//true

!      非   取反向   !ture=false !false=true

  1. //取反向 !
  2. var r=true;
  3. console.log(!r);//false

(4)逻辑短路,关注点不在结果是真假,关注点在后面的程序是否会执行!!!
        and=&& 并且     当第一个条件为false的时候,就不需要在执行第二条件

  1. //逻辑短路
  2. //and=&& 并且 当第一个条件为false的时候,就不需要在执行第二条件
  3. var num=3;
  4. num>5 && console.log(num);//false,不执行后续
  5. num<5 && console.log(num);//

or = ||     或者     当第一个条件为true的时候,就不需要执行第二条件
        注意事项:逻辑短路无需关注运算符的整个逻辑计算的结果是ture还是false,重点看是否会执行第二条件。

  1. //or= || 或者 当第一个条件为true的时候,就不需要执行第二条件
  2. var num=3;
  3. num>1 || console.log(num);//true,后续不执行
  4. num<1 || console.log(num);//前面为false,继续执行,结果3
  5.  
  6. //综合:变量保存年龄,如果满18周岁,打印"成年人"
  7. var age=19;
  8. console.log(age>=18 && "成年人");//成年人

(5)位运算符(了解即可)
        在执行运算的时候,计算机会把数据转成二进制,来进行运算
        按位于 (&),上下两位都是1,结果是1,否则是0.

  1. //按位于(&),上下两位都是1,结果是1,否则是0.
  2. /*
  3. 011
  4. 101
  5. ————
  6. 001
  7. */
  8. console.log(3&5);//

按位或 (|),上下两位含有1,结果是1,否者是0,

  1. //按位或 (|),上下两位含有1,结果是1,否者是0,
  2. /*
  3. 101
  4. 111
  5. ————
  6. 111
  7. */
  8. console.log(5|7);//

按位异或(^) ,上下两位不同为1,相同为0.

  1. // 按位异或(^) ,上下两位不同为1,相同为0.
  2. /*
  3. 101
  4. 111
  5. ————
  6. 010
  7. */
  8. console.log(5^7);//

按位右移(>>),删除二进制的最后一位,成倍减少

  1. //按位右移(>>),删除二进制的最后一位,每增加一次右移,结果成倍减少一次
  2. console.log(8>>1);//
  3. console.log(8>>2);//
  4. console.log(8>>3);//

按位左移(<<),在最后一位增加一位0,成倍增长

  1. // 按位左移(<<),在最后一位增加一位0,每增加一次左移,结果成倍增长一次
  2. console.log(5<<1);//
  3. console.log(5<<2);//
  4. console.log(5<<3);//

(6)赋值运算符
        =      等于

  1. //等于
  2. var a=1;//给a赋值为1

+=    加等于

  1. //加等于
  2. //运算符的优先级,+号优先于=号
  3. var a=1;
  4. //第一种写法,在原来基础上+1,把结果赋给a
  5. a=a+1;
  6. console.log(a);
  7. //第二种写法,在原来基础上+1,把结果赋给a
  8. a+=1;
  9. console.log(a);
  10. //在赋值运算符中,加等于可以用于字符串拼接
  11. var str='a';
  12. str+='b';
  13. console.log(str);//'ab'

-=    减等于

  1. //减等于
  2. var a=5;
  3. //普通写法
  4. a=a-1;
  5. console.log(a);//

*=    乘等于

  1. //乘等于
  2. //打八折,在原来的基础上打八折
  3. var price=1500;
  4. //赋值运算符写法
  5. price*=0.8;
  6. console.log(price);//

/=    除等于

  1. //除等于
  2. //总分数552,求6科平均成绩
  3. var score=552;
  4. score/=6;
  5. console.log(score);//

%= 取余等于

  1. //取余等于
  2. //注意:运算符的优先级:先执行并且,再执行或者;
  3. //声明变量保存一个年份,判断这个年份是否为闰年,结合逻辑短路,如果是闰年就打印闰年
  4. var year=1999;
  5. (year%4===0 && year%100!==0 || year%400===0) && console.log("闰年");//false

(7)三目运算符
        一目:一个运算符连接一个数据
                 a++    b--    !c
        二目:一个运算符连接两个数据
                 a+1  a-1  a*1   a/1   a>1  a<1  a=1  a!1等等
        三目:两个运算符连接三个数据
                 条件表达式?表达式1:表达式2
                 如果条件表达式为ture执行表达式1,
                 如果条件表达式为false执行表达式2

  1. //三目运算符
  2. //根据年龄判断是否为成年人
  3. var age=19;
  4. age>=18?console.log('成年人 '):console.log('未成年人');//成年人
  5. //声明两个变量来保存用户名和密码,如果用户名为root,并且密码为123456,打印成功,否则打印失败
  6. var uname='rot';
  7. var pwd='123456';
  8. (uname==='root' && pwd==='123456') ? console.log('登录成功'):console.log('登录失败');//登录失败
  9. var uname1='root';
  10. var pwd1='123456';
  11. (uname1==='root' && pwd1==='123456') ? console.log('登录成功'):console.log('登录失败');//登录成功

03.JS运算符的更多相关文章

  1. js运算符的一些特殊应用

    作者: 小文 来源: http://www.cnblogs.com/daysme/ 时间: 2017/3/2 17:21:03 本文集合了了js运算符的一些特殊应用. js位运行符的运用. js运算符 ...

  2. JS运算符

    JS运算符: 使用的运算符的时候不需要声明变量,运算符非变量:1.算术运算符 + - * / % (%为取余数运算符) (自增运算符++) (自减运算符 --) + 运算符作用:1.数值相加 2.字符 ...

  3. JavaScript学习03 JS函数

    JavaScript学习03 JS函数 函数就是包裹在花括号中的代码块,前面使用了关键词function: function functionName() { 这里是要执行的代码 } 函数参数 函数的 ...

  4. js 运算符优先级

    在看jquery源码,仔细看入口函数的时候,有点懵了.看到与或.多重三目,傻傻的分不清,就代码仔细的区分下运算符优先级,以前都是呼呼的飘过.看来任何一个细节都不能忽略,不然效率极低.. !functi ...

  5. js运算符单竖杠“|”的用法和作用及js数据处理

    js运算符单竖杠“|”的作用 很多朋友都对双竖杠“||”,了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用技巧,js小知识 , 这篇文章里面,js ...

  6. js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框

    js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...

  7. js课程 2-6 js如何进行类型转换及js运算符有哪些

    js课程 2-6 js如何进行类型转换及js运算符有哪些 一.总结 一句话总结: 1.所有类型->布尔类型(为假的情况)有哪些(6种)? 1)字符串('')2)整型(0)3)浮点型(0.0)4) ...

  8. 033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结

    033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结 本文知识点:运算符和表达式知识点总结 前面学习的几篇文都是运算符和表达式相关的知 ...

  9. 032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题

    032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例--闰年问题 本文知识点:运算符和if-else条件语句的综合案例 ...

随机推荐

  1. selenium等待方式之显示等待

    有时候,页面元素并未及时加载出来导致后面的步骤无法执行 这里就需要在加载前添加等待时间,让目标元素有足够的时间加载出来 第一种方法:使用time.sleep() 这种方法过于强制,无论元素是否加载出来 ...

  2. [SDOI2011]染色(树链剖分)

    [SDOI2011]染色(luogu) Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段 ...

  3. java中符号类型和无符号类型的问题分析

    一 参考博文 java中无符号类型的解决方案 二 java中的无符号数和有符号数 在计算机中,可以区分正负的类型,称为有符号类型,无正负的类型,称为无符号类型. 使用二进制中的最高位表示正负 计算机中 ...

  4. springboot中使用Caffeine本地缓存

    Caffeine是使用Java8对Guava缓存的重写版本性能有很大提升 一 依赖 <dependency> <groupId>org.springframework.boot ...

  5. NLP(二十)利用BERT实现文本二分类

      在我们进行事件抽取的时候,我们需要触发词来确定是否属于某个特定的事件类型,比如我们以政治上的出访类事件为例,这类事件往往会出现"访问"这个词语,但是仅仅通过"访问&q ...

  6. 题解 bzoj3688【折线统计】

    考虑 \(dp\) . 首先把所有节点按 \(x\) 从小到大排序是很有必要的. 记 f[i][j][0] 表示满足以第 \(i\) 个节点做折线结尾,选取的点集 \(S\) 满足 \(f(S)=j\ ...

  7. SpingBoot错误信息处理及原理

    SpringBoot错误信息处理机制 在一个web项目中,总需要对一些错误进行界面或者json数据返回,已实现更好的用户体验,SpringBoot中提供了对于错误处理的自动配置 ErrorMvcAut ...

  8. O准备如何苟进复赛圈?华为软挑开挂指南(附赛题预测)

    事先声明,这不是华为软挑的软广,我也不是海军. 这篇文章纯粹是心血来潮,原因是去年上传到github的参赛代码,前几天又有两个人star和fork了. 记得star热潮还是去年4月复赛刚结束的那几天, ...

  9. FFmpeg命令读取RTMP流如何设置超时时间

    子标题:FFmpeg命令录制RTMP流为FLV文件时如何设置超时时间 | FFmpeg命令如何解决录制产生阻塞的问题0x001: 前言 今天在测试程序时遇到两个问题.Q1:ffmpeg录制RTMP流并 ...

  10. Spring源码阅读笔记01:源码阅读环境准备

    1. 写在前面 对于做Java开发的同学来说,Spring就像是一条绕不过去的路,但是大多数也只是停留在对Spring的简单使用层面上,对于其背后的原理所知不多也不愿深究,关于这个问题,我在平时的生活 ...