运算符

发布时间 2023-12-13 18:24:50作者: 葵qwq

 运算符

 1,数学运算符

1.“+”

  • 只有符号两边都是数字的时候才会进行加法运算
  • 只要符号任意一边是字符串类型,就会进行字符串拼接

2.“-”

  • 会执行减法运算
  • 自动把两边都转换成数字进行运算

3."*"

  • 会执行乘法运算
  • 自动把两边都转换成数字进行运算

4.“/”

  • 会执行除法运算
  • 自动把两边都转换成数字进行运算

示例如下:

1.最最常规:

var a=10
var b=10
        console.log(a+b)

结果为:20(蓝色)

2.加法若任何一边为字符串,那么整个都会自动转换为字符串

 var a=10
    console.log(a+"111")

结果为:10111(黑色哦)

3.加布尔:

var a=10
var b=true
        console.log(a+b)

结果为:11(蓝色)

4.小特殊:取余(%)

var a=10
var b=3
        console.log(10%3) 

结果为:1(10/3.....1)

小题目1:把“1000分钟”“小时:分钟”表示

var a=1000
var b=parseInt (a/60)
var c=a%60
        console.log(b+":"+c)

结果为:

小题目2:计算下列语句的值

console.log(1+"2"*3+4)

自得结果为:11(数值,蓝色)(正确)

变式:

console.log(“1”+"2"*3+4)

自得结果为:164(字符串,黑色)(正确)

2,赋值运算符

1.”="

  • 就是把等号右边的赋值给等号左边的变量名

如:var a=100

  • 就是把100赋值给a变量
  • 那么a变量的值就是100

2,“+=”、”-=“、”*=“、”/=“、”%=“。

对a进行运算后,重新赋值。

小拓展:

(1)数字转换

  • var m=5 var n=6 var c c=m m=n n=c console.log(m,n)

         (2)加1

var number=5
1,number=nimber+1
2,number+=1
console.log(number)

3,比较运算符

1,==

  • 比较符号两边的值是否相等,不管数据类型
  • 1==”1"(由于两个数值一样,得到true)

2,===

  • 比较符号两边的值和数据类型是否都相等
  • 1===“1”(虽然两个数值是一样的,但并不是同一数据类型,故得到false)

3,!=

  • 比较符号两边的值是否不等
  • 1!=“1“(因为此时两边的值是相等的<与数据类型无关>,所以比较他们不相等时得到false)

小拓展:

console.log(true==1)
console.log(""===0)
console.log(null==0)
console.log(undefined==0)

(1)true

(2)false(数据类型不一样)

(3)flase

(4)flase(null与undefined是在特殊只可以硬记)

4,!==

  • 比较符号两边的数据类型与值是否相等
  • 1!==”1“(由于两边的数据类型不相等,故在比较它们不相等时得到的是true)

5,>\>=\<\<=

4,逻辑运算符

1,&&(且)

必须两个都为真才为真

2,||(或)

一个为真即为真

3,感叹号的巧用

1,取反

应用请景:在写购物车时,先判断购物车里有无商品,在看要不要显示相应特殊样式

var length=5
console.log(length===0)

译为:length表示商品列表长度,通过比较运算符判断商品长度是否等于0,等于0则出现特殊样式,不等于则不出现。

var length=5
console.log(!length)

当length等于0时!length为真,则需要出现特殊样式,当有商品length不等于0时,则!length为假(0),则不需要出现特殊样式。

2,取布尔值

var ww=”“
console.log(!!ww)

”“为0,!”“为真,则!!”“为假,即可判定”“的布尔值为0.

4,&&与||的短路用法

  • x&&y 中如果x为假则整个表达式都为假,则不需要执行y,y保持原值。如果x为真,则y继续执行。
  • x||y 中如果x为真则整个表达式都为真,则不需要执行y,y保持原值。如果x为假,则y继续执行


应用情景:

1,&&的应用

var y
console.log(y.tostring())
console.log(11111)

因为y为undefined,不可以用tostring转换,所以系统会报错,则无法执行下一步指令。

解决方法:

var y
console.log(y&&y.toString())
console.log(11111)

结果为:undefined

              11111

因为y为假,则由于逻辑短路&&即为假,则不需执行y.tostring()

则不会报错,则正常进行。

var y
y=1000
console.log(y && y.toString())
console.log(11111)

结果为:1000(字符)

               11111

应为1000为真,所以对后面执行,所以打印出来的为1000,正确!

大注意:y.toString()中S为大写!!!

 

2,||的应用

var z=""
document.write(z||"这个家伙很懒,什么也没有留下")

应用情景:当用户什么都没输入时,则后端传输来“”,为假,则语句向后执行,则显示出“这个人很懒.....

var z="爱你"
document.write(z||"这个家伙很懒,什么也没有留下")

应用情景:当用户输入了内容,z则为真,则逻辑短路,不会执行后面的内容。

5,自增自减运算符


1,++ 

  • 进行自增运算
  • 分成两种,前置++,后置++
  • 前置++,会先把值加一,再返回
var qq=10
console.log(++qq)
//先返回qq+1(即qq++=11),再把qq+1(即11)

结果为:11

  • 后置++,会先把值返回,在自动加一
var qq=10
console.log(qq++)
//先返回qq(qq++=原值10),再把qq+1(即11)

结果为:10

  应用情景:写购物车增减商品时的使用方法。

 var number=10
//  number++
// ++number
等价于
 document.write(++number)

 

注意:为啥不使用number++呢,因为number++不会加一,所以返回的时10,无用。

 

小题目:

var n=10
var res=++n + n++ + ++n
document.write(res)

结果为:++n=11(n=11),n++=11(n=12),++n=13(n=13)

              11+11+13=35,所以结果为35.

2,--

  • 进行自减运算
  • 分成两种,前置--,后置--
  • 前置--,会先把值减一,再返回
var qq=10
console.log(--qq)
//先返回qq-1(即--qq=9),再把qq-1=9

结果为:9

var qq=10
console.log(qq--)
//先返回qq的值(即qq--=原值10,再把qq-1=9

结果为:10

小题目:

var m=10
var reg=m++ + --m + ++m
console.log(m,reg)

结果为:m++=10(m=11),--m=10(m=10),++m=11(m=11)

              10+10+11=31

所以为 11,31

6,三目运算符

var x,y
x=13
y=x>10?x+10:x

结果为:23

译为:因为x=13>10,结果为真,所以y=x+10=13+10=23;

变式:x=9

译为:因为x=9<10,结果为假,所以y=x=9.

应用情景:在购物打折时,满200减10,不满200但满100减5

var afterprice,price=210
afterprice=price>200?price-10:(price>100?price-5:price)

其中小括号是为了让他优先进行!这个情景更适于使用if选择语句,请看下一篇!