什么是运算符?

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

运算符的分类:

  1. 赋值运算符(=)

    将右边的值赋给左边。

  1. var x = 10;
  2. var y = x;
  3. console.log(x); //10
  4. console.log(y; //10

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

  注意:

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

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

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

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

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

  1. var x = 10;
  2. var flag = true;
  3. var flag1 = false;
  4. console.log(x+flag); //11
  5. console.log(x-flag1); //10

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

  1. var num = 10;
  2. var str ="hello";
  3. var flag = false;
  4. var nul = null;
  5. var unde = undefined;
  6. var obj = {
  7. name : "jack",
  8. age : 23,
  9. sex : "男"
  10. };
  11. console.log(str + num); //hello10
  12. console.log(str + flag); //hellofalse
  13. console.log(str + nul); //hellonull
  14. console.log(str + obj); //hello[object Object]
  15. console.log(str + unde); //helloundefined
  16. console.log(str + str); //hellohello

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. var num = 10;
  2. var str = "10";
  3. if (num === str || num == str){
  4. console.log("相等"); //相等
  5. }

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

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

  1. var num = 10;
  2. var num1 = 2;
  3. console.log(num += num1); //12
  4. console.log(num -= num1); //10
  5. console.log(num *= num1); //20
  6. console.log(num /= num1); //10
  7. console.log(num %= num1); //0

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

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

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

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

  

js运算符浅析的更多相关文章

  1. JS运算符

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

  2. js 运算符优先级

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

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

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

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

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

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

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

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

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

  7. js 运算符的执行顺序

    js 运算符的执行顺序 js 运算符优先级 Operator Precedence 下表从最高(21)到最低(1)优先顺序排列 left-to-right 从左到右 / 先左后右 right-to-l ...

  8. 《JavaScript高级程序设计》学习笔记(2)--JS运算符详解

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 思维导图 前面对JS的运算符的操作很多细节的东西没有提及,今天给大家分享一张网上找的思维导图,对这一部 ...

  9. 聊聊js运算符 ‘与(&&)’和‘ 或(||)’

    一,先来几个问题,看给位能都全部答对. var objA1 = {x:1}; var objA2 = {x:2}; var resultA = objA1 && objA2; //请问 ...

随机推荐

  1. java abs(绝对值) , max(最大值),min(最小值) 方法的应用

    在写程序是,我们常常会计算一个数的绝对值,这时我们可以使用java里的方法来计算 public class Demo1{ public static void main(String [] args) ...

  2. php 进行跨域操作

    本地配置两个域名: http://www.concent.com   主域名 http://s.concent.com/       子域名 在主域名下添加跨域代码: ini_set('session ...

  3. css3兼容360

    在头部添加 <!--启用360浏览器的极速模式(webkit) --> <meta name="renderer" content="webkit&qu ...

  4. php 解密$OOO0O0O00=__FILE__

    转自:https://www.cnblogs.com/g2star/p/3688350.html <?php // Copyright © 2009-2010 xxx.com 版权所有$OOO0 ...

  5. 高可用Redis(十三):Redis缓存的使用和设计

    1.缓存的受益和成本 1.1 受益 1.可以加速读写:Redis是基于内存的数据源,通过缓存加速数据读取速度 2.降低后端负载:后端服务器通过前端缓存降低负载,业务端使用Redis降低后端数据源的负载 ...

  6. C语言的数组指针

    数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element).数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存.以int arr[] = { 99, ...

  7. http 响应状态码介绍

  8. ffmypeg 视频处理类库使用方法

    (经常用到ffmpeg 做一些视频数据的处理转换等,用来做测试,今天总结了一下,参考了网上部分朋友的经验,一起在这里汇总了一下,有需要的朋友可以收藏测试一下,有问题欢迎在下面回帖交流,谢谢;by te ...

  9. 前端开发【第1篇:HTML】

    HTML初识 1.什么是HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都 ...

  10. VMware与Hyper-V的冲突解决 VMware Workstation 与 Device/Credential Guard 不兼容 解决方案

    win10专业版官方解决方案https://kb.vmware.com/s/article/2146361 win10家庭版解决方案win10家庭版本身是不支持Hyper-V服务的,但是如果是“win ...