博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS知识整理随笔(2) 逻辑操作符和算数操作符以及其它操作符
阅读量:6351 次
发布时间:2019-06-22

本文共 2519 字,大约阅读时间需要 8 分钟。

var num1=10,num2="c",num3="5";    console.log(num1*num2);    console.log(num1*num3);//隐式类型转换

递增和递减

 

递增(递减同理)

++a与a++都是对a进行递增操作

区别

++a先返回递增之后的a的值

a++先返回a的原值,在返回递增之后的值

var num1=10,num2=5,num3=++num1+num2; //++num1 num1=num1+1    console.log(num1);    console.log(num3);

var num1=10,num2=5,num3=num1++-num2;     console.log(num1);    console.log(num3);

var x1=20,x2=30,x3=--x1+x2--;    console.log(x1);    console.log(x2);    console.log(x3);// 19+30=49;

 

a++ 的含义是先赋值后相加,如 b=a++; 先将a的值赋给b,然后a再加上1;++a的含义是先相加后赋值,如 b=++a 先将a加上1,然后再把加上1的a赋给b.

int a=1;
b=a++; ---> b=a ,b=1;a+1,a=2;
b=++a;--->b=a+1,b=2; 此时的a已经是2

 

赋值操作符

简单赋值:=;

复合赋值:+=  -=  *=  %=  /=

比较操作符

==:值是否相等

===:比较值是否相等同时比较类型是否相等

!=:不相等,比较值是否不相等

!==:不相等,比较值得同时比较数据类型是否不相等

返回值:boolean

 

三元操作符

语法

条件 ? 执行代码1:执行代码2

说明

可代替简单的if语句,如果条件成立,执行代码1,否则执行代码2

var soce=85;    var result=(soce>=60)?"及格":"不及格"    console.log(result);

 

逻辑操作符

  • &&  与(只要一个条件不成立,返回false)
  • ||    或  (只要一个条件成立,返回true)
  • !     非

逻辑与(并且)

说明

在有一个操作数不是布尔值得情况下,逻辑与操作就不一定返回值,它遵循规则

  • 如果第一个操作隐式类型装换后为true,则返回第二个操作数
  • 如果第一个操作数隐式类型转换后为false,则返回第一个操作数
  • 有一个是null则返回null
  • 有一个是NaN就返回NaN
  • 有一个是undefind就返回undefind

 

var num1=10,         num2=20,         num3=30,         str="hello",         n=null,         m,         bool=true;//所有条件都为true才返回true  有一个false就返回falseconsole.log(num1
num1 && bool) //true true true /true//在操作数不是布尔值的情况//1、如果第一个操作数隐式类型装换后为true 则返回第二个操作数console.log(str && num3); //所有字符串除了"" 转换为Boolean都是true /30console.log(80 && 55) //所有数字除0 转换为Boolean都是true /55console.log("hello" && 65 && "abc") //true true true /abc//2、如果第一个操作数隐式类型装换后为false 则返回第一个操作数console.log(0 && 88) //false true /0console.log("" && 0 && 30>20) //false false true / ""//3、如果有一个操作是null 则返回null//4、如果有一个操作是NaN 则返回NaN//5、如果有一个操作是undefined 则返回undefinedconsole.log(n && num3) //null true /nullconsole.log(33*"abc" && 55) //NaN true /NaNconsole.log(m && bool) //undefined true /undefined

 

 

 

逻辑或

  • 如果第一个操作数隐式类型转换后为true,则返回第一个操作数
  • 如果第一个操作数隐式类型转换后为false,则返回第二个操作数
  • 如果两个操作数是null则返回null
  • 如果两个操作数都是NaN、则返回NaN
  • 如果两个操作数都是undefined,则返回undefined

 

//只要一个条件成立就返回trueconsole.log(55>88  || 33<66) //false true /trueconsole.log(55!="55" || 88==="88") //false (parseInt("55"))   false /false//在有一个操作数不是布尔值的情况下//1、如果第一个操作数隐式类型转换后为true 则返回第一操作数console.log("hello" || 0) //true    /helloconsole.log(99 || 0 || "abc") //true false true  //99//2、如果第一个操作数隐式类型转换后为false则返回第二个操作数console.log(0 || 99) //false true  /99

 

 

逻辑非

说明

  • 无论操作数是什么数据类型,逻辑非都会返回一个布尔值
  • ! !同时使用两个逻辑非操作符使   
    •   第一个逻辑非操作基于无论什么操作数都返回一个布尔值
    •        第二逻辑非则对该布尔值求反

 

转载于:https://www.cnblogs.com/zry2510/p/7093382.html

你可能感兴趣的文章
C++ Primer 有感(标准库map类型)
查看>>
(23)Spring Boot启动加载数据CommandLineRunner【从零开始学Spring Boot】
查看>>
Android ImageView加载圆形图片且同时绘制圆形图片的外部边缘边线及边框
查看>>
链表的反转
查看>>
动态从数据库获取数据(Vue.js)【数据可变】
查看>>
操作linux命令
查看>>
转载]typedef struct和struct的区别
查看>>
数据仓库、数据整合、ETL、ELT和EII之间的区别?
查看>>
c++ 注册表操作dll动态调用
查看>>
C#开发人员应该知道的13件事情
查看>>
工厂模式(Factory)
查看>>
Linux 虚拟地址与物理地址的映射关系分析【转】
查看>>
GNU make manual 翻译(三十七)
查看>>
自动化测试框架的搭建
查看>>
Linux 邮件服务器 之跟我一步一步来实现一个邮件系统【转】
查看>>
522,黑客情人节,向前辈吴恩达和姚期智学习如何撩妹
查看>>
Go语言入门——数组、切片和映射
查看>>
JS常用判断空对像的几种方法
查看>>
传统实体连锁店地位受到挑战 沃尔玛开设了sbf胜博智能零售实验室
查看>>
图解TCP协议中的三次握手和四次挥手
查看>>