JS-操作符

本文详细介绍了JavaScript中的操作符,包括自增、自减、逻辑与、逻辑或、逻辑非、比较运算符、相等运算符、三目运算符、in运算符和逗号运算符。重点解析了每个操作符的工作原理和使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、自增和自减

1、自增

前置++:先把变量的值加1,再进行取值操作

后置++:先取变量的值,然后再进行加1操作

var a=20;
++a;  //让a的值加1
console.log(a)  //21
			
var b=20;
b++;  //让b的值加1
console.log(b)  //21
			
var c=10
console.log(c++)  //10
console.log(c)  //取c变量中保存的值并打印  11
			
var d=10
console.log(++d)  //11
console.log(d)  //取d变量中保存的值并打印  11

2、自减

前置--:先把变量的值减1,再进行取值操作

后置--:先取变量的值,然后再进行减1操作

var a=20;
--a;  //让a的值减1
console.log(a)  //19
			
var b=20;
b--;  //让b的值减1
console.log(b)  //19
			
var c=10
console.log(c--)  //10
console.log(c)  //取c变量中保存的值并打印  9
			
var d=10
console.log(--d)  //9
console.log(d)  //取d变量中保存的值并打印  9

注:无论前置还是后置,都既有存值操作也有取值操作,一个变量只能保存一个数据

二、逻辑与运算符&&

 &&符号相当于是and

var re=A&&B
//如果A为真,无论B是真是假都输出B
//如果A为假,无论B是真是假,都直接输出A
//0在做布尔判定时会判定为false

console.log(2 && 1)  //打印1
console.log(0 && 2)  //0  0为false,打印2

var a=true
var b=19
if(a&&b>18){
 	console.log(123)  //打印123
}else{
    console.log(456)
}

var a=false
var b=19
if(a&&b>18){  //a为false,a&&b输出false,然后false会转化成0,得到0<18,不符合判定条件,跳到else中运行
 	console.log(123)  //打印456
}else{
    console.log(456)
}

三、逻辑或运算符||

 逻辑或操作符有两根竖线组成(||)

var re=A||B
//当A表达式布尔判定为true时,输出A,B不运行
//当A表达式布尔判定为false时,则输出B

逻辑或返回值判定简单方法只要有真就返回真

注:一些其他情况

1、如果第一个操作数是对象,则返回第一个操作数

2、如果两个操作数都是 null,则返回 null

3、如果两个操作数都是 NaN,则返回 NaN

4、如果两个操作数都是 undefined,则返回 undefined

var a = (5>4 || 3>9)
console.log(a)  //true

var b = (6 || 9)
console.log(b)  //6

var c = (false || undefined)
console.log(c)  //undefined

var d = true
var e = (d || "hello")
console.log(e)  //hello

四、逻辑非运算符!

 逻辑非(取反)由一个叹号(!)表示

无论这个值是什么数据类型,这个操作符都会使其返回一个布尔值。

逻辑非操作符首先会将它的操作数转换为一个布尔值,然后再取反。

console.log( !true )  //false 
console.log( !2 )  //false   操作数为非 0数值,返回false
console.log( !"hello" )  //false  操作数是非空字符串,返回false
console.log( !"" )  //true  操作数是空字符串,返回true
console.log( !null )  //true  操作数 是null、undefined、NaN,返回true
console.log( !0 )  //true  操作数是数值0,返回true
console.log( !undefined )  //true
console.log( !NaN )  //true

当同时使用两个逻辑非操作符时,可以将该值转换为对应的布尔值

console.log( !!"hello" )  //true
console.log( !!null )  //false

五、比较运算符

 小于(<) 、大于(>) 、小于等于(<=)和大于等于(>=)这几个关系操作符用于对两个值进行比较,比较的规则与我们在数学课上所学的一样,判断结果结果返回true或false

6 < 10
b > 20
a >= c
b <= d

var re=20
var re2=24
console.log(re>re2)  //false

console.log( 13>16 )  //false
console.log( 19<32 )  //true

任何操作数与 NaN 进行关系比较,结果都是 false。

console.log( undefined>null )  //false
console.log( 1>"a" )  //false
connsole.log( 2<"he" )  //false

六、相等运算符

 相等操作符用两个等号表示:==

不相等操作符用一个感叹号和一个等号表示:!=

相等比较原则:

1、如果是布尔值先将true转化为1,false转化为0,然后进行比较

2、如果有字符串,则先将字符串转化为数值,再进行比较

console.log(5 == 50)  //false
console.log(1 != 2)  //true
console.log(true == 1)  //true
console.log(9 != "9")  //false

一些特殊情况(可以直接背)

console.log(null == undefined)  //true
console.log("NaN" == NaN)  //false
console.log(1 == NaN)  //false
console.log(NaN == NaN)  //false
console.log(NaN != NaN)  //true
console.log(undefined == 0)  //false
console.log(null == 0)  //false

全等操作符由三个等号表示:===

不全等操作符由一个一个感叹号 两个等号表示:!==

全等:只有在两个操作数未经转换就相等的情况返回true,其余都返回false

不全等:两个操作数未经转换就不相等的情况返回true,相等返回false

console.log(2 === 2)  //true
console.log(null === undefined)  //false
console.log("string" =="string")   //true
console.log("1" !== 1)  //true

七、三目运算符

 expr?A:B :expr表达式会做布尔判定,判断结果为true,执行A,判断结果为false,执行B

var re = (3 > 2) ? 9:11  //由于3>2为真,所以执行A,也就是9,得到re=9
console.log(re)  //9

var re2 = (null == undefined) ? {first:"hello"}:"world"
console.log(re2)  //{first:"hello"}

var a = 18
var b = (a>=18) ? "adult":"child"
console.log(b)  //adult

var x = "good" ? "boy":"girl"
console.log(x)  //boy

八、in运算符

 in运算符:检查右侧对象是否拥有左侧属性名,有的话就返回true,否则返回false

var a = {name:"Niko",age:20,telephone:12345678,address:"nan"}
console.log("name" in a)  //true
console.log("agge" in a)  //false
console.log("address" in a)  //true
console.log("telephone" in a)  //true
console.log("toString" in a)  //true
console.log(20 in a)  //false

九、逗号运算符

var re=A,S,D,F,G  //re=G
//逗号隔开的表达式会全部执行,最后一个运行的表达式的结果就是逗号运算符的结果
var a,s,d,f=22;
//隐式操作  var a;var s;var d;var f=22

var re=(11+12,33,55);
console.log(re)  //55

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值