什么是运算符?

  连接两个或多个操作数(某个值,表达式)之间的符号。

运算符的分类:

  1. 赋值运算符(=)

    将右边的值赋给左边。

var x = 10;
var y = x;
console.log(x); //10
console.log(y; //10

  2. 算术运算符(+,-,/,*,%)

  注意:

    2.1 在做除法是,若是有无限循环的小数,就会取小数的近似值

var x = 10;
console.log(x/3); //3.3333333333333335

    2.2 当字符串与数值类型进行算术运算时,除了加号(+)是用来做字符串的拼接外,其余的都是将字符串转换为number类型,在做算术运算,如果字符串不能转换成数字时,输出结果为NaN。

var x = 10;
var y = "hello";
console.log(x+y); //10hello
console.log(x-y); //NaN

    2.3 boolean与number类型做运算时,boolean会自动转化成number类型,false-->0,true-->1。

var x = 10;
var flag = true;
var flag1 = false;
console.log(x+flag); //11
console.log(x-flag1); //10

    2.4 字符串与任何类型进行“+”号运算都是字符串的拼接。

var num = 10;
var str ="hello";
var flag = false;
var nul = null;
var unde = undefined;
var obj = {
name : "jack",
age : 23,
sex : "男"
};
console.log(str + num); //hello10
console.log(str + flag); //hellofalse
console.log(str + nul); //hellonull
console.log(str + obj); //hello[object Object]
console.log(str + unde); //helloundefined
console.log(str + str); //hellohello

  3. 一元运算符(++,--)

  a++,先赋值,在自加1

  ++a,先自加1,在赋值

  a--,先赋值,在自减1

  --a,先自减1,在赋值

var num1 = 1;
var num2 = 3;
var num3 = 5;
var num4 = 7;
console.log(num1++); //1
console.log(++num2); //4
console.log(num3--); //5
console.log(--num4); //6

  4. 比较运算符(<,<=,>,>=,==,!=,===,!==)

  在用比较运算符是,返回的值一定是boolean值。

  ==:等于-----只比较内容,只要内容相等,就返回true,才会返回true,否则就返回false。

  ===:完全等于-----不仅比较内容,还比类型,只有内容和类型都相等时,才会返回true,否则就返回false。

var num1 = 1;
var num2 = 3;
console.log(num1 < num2); //true
console.log(num1 >= num2); //false
console.log(num1 != num2); //true

  5. 逻辑运算符:与,或,非(&&,&,!,||,|)

  其中与或有两种与或,分别为长路与或(&&,||),短路与或(&,|),长路与短路的区别在于,短路先执行逻辑运算符左侧部分,符合要求就输出逻辑运算结果,不再执行右侧部分;而长路不

  管左侧是否符合要求,它都会执行右侧部分。

  与(&&,&):当所有表达式都返回true时,结果才返回true,只要有一个表达式返回false,那么结果就为false。一假为假

  非(||,|):只要有一个表达式返回true,结果就返回true,只有所有的表达式都返回false时,结果才为false。一真为真

var num = 10;
var str = "10";
if (num === str || num == str){
console.log("相等"); //相等
}

  6. 算术赋值运算符(+=,-=,*=,/=,%=)

  +=:就相当于num = num + num1

var num = 10;
var num1 = 2;
console.log(num += num1); //12
console.log(num -= num1); //10
console.log(num *= num1); //20
console.log(num /= num1); //10
console.log(num %= num1); //0

  7. 三元运算符(三目运算符,条件运算符)

  条件?表达式1:表达式2

  当条件为true时,执行表达式1;当条件为false时,执行表达式2。

var num = 10;
var num1 = 2;
num == num1?console.log("执行表达式1"):console.log("执行表达式2"); //执行表达式2

  

最新文章

  1. c += c-- | ++b;
  2. [Spring MVC] - view的redirect和forward
  3. java获取classpath文件路径空格转变成了转义字符%20的问题
  4. Hadoop step by step _ install and configuration environment
  5. Winform——计算器进制转换
  6. 架构探险——第二章(为web应用添加业务功能)
  7. C++中的mutable关键字
  8. shell -Z- d等等代表
  9. e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (四) Q 反回调
  10. 【解决】Django项目废弃SQLite3拥抱MySQL
  11. arcgis安装问题SDK开始安装不了
  12. JS计算字符串长度(中文算2个)
  13. 重启oracle数据库的一次操作命令和alter日志。
  14. 理解SynchronizationContext,如何在Winform里面跨线程访问UI控件
  15. 执行Python出现LookupError: unknown encoding: cp65001解决办法
  16. IP地址数据库 | 手机号段归属地数据库 | 行政区划省市区数据库
  17. tensorflow中文教程
  18. [洛谷P1886]滑动窗口 (单调队列)(线段树)
  19. sqlserver用timestamp帮助解决数据并发冲突 转【转】
  20. c# sharpsvn 客户端开发总结

热门文章

  1. IIS7二级域名添加同一证书
  2. windows2012服务器中安装php7+mysql5.7+apache2.4环境
  3. pod BaiduMapKit 报错解决方案
  4. Widows自带系统监控工具——24小时监控服务器性能
  5. java ReentrantLock结合条件队列 实现生产者-消费者模式 以及ReentratLock和Synchronized对比
  6. Linux基础 -Ubuntu
  7. WebView与JS互调
  8. 2018-2019-2 网络对抗技术 20165328 Exp3 免杀原理与实践
  9. .Net Core 技巧
  10. MIUI9系统怎么卡刷开发版获取ROOT超级权限