03.JS运算符
阅读原文时间:2023年07月08日阅读:1

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

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

- (减)

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

* (乘)

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

/ (除)

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

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

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

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

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

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

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

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

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

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

//先执行自增,在打印a的值  
//2.声明变量a  
var a=1;  
//先让a的值执行自增,此时a的值变成了2,然后在打印a的值就是2  
console.log(++a);//输出为2  
//重新获取值也是2  
console.log(a);//输出为2

//综合  
var num=3;  
//第一个num的值打印为3,但是内存为2,影响内存中的储存的值,然后后面的num取内存中的值,所以是1,3+1=4,  
console.log(num--+--num);//

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

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

<     (小于)

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

>=   (大于等于)

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

<=   (小于等于)

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

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

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

!=    (不等于)

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

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

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

!==  (全不等于)

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

数据类型的转换

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

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

//NaN和任何值比较  
//3>NaN  
console.log(3>'10a');//false  
//3<NaN  
console.log(3<'10a');//false  
//3>=NaN  
console.log(3>='10a');//false  
//3<=NaN  
console.log(3<='10a');//false  
//3==NaN  
console.log(3=='10a');//false  
//3===NaN  
console.log(3==='10a');//false  
//NaN==NaN  
console.log(NaN==NaN);//false  
//NaN===NaN  
console.log(NaN===NaN);//false  
//3!=NaN  
console.log(3!='10a');//true  
//3!==NaN  
console.log(3!=='10a');//true

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

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

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

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

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

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

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

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

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

//or= || 或者     当第一个条件为true的时候,就不需要执行第二条件  
var num=3;  
num>1 || console.log(num);//true,后续不执行  
num<1 || console.log(num);//前面为false,继续执行,结果3

//综合:变量保存年龄,如果满18周岁,打印"成年人"  
var age=19;  
console.log(age>=18 && "成年人");//成年人

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

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

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

//按位或  (|),上下两位含有1,结果是1,否者是0,  
/\*  
101  
111  
————  
111  
\*/  

console.log(5|7);//

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

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

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

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

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

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

(6)赋值运算符
        =      等于

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

+=    加等于

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

-=    减等于

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

*=    乘等于

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

/=    除等于

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

%= 取余等于

//取余等于  
//注意:运算符的优先级:先执行并且,再执行或者;  
//声明变量保存一个年份,判断这个年份是否为闰年,结合逻辑短路,如果是闰年就打印闰年  
var year=1999;  
(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

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

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器