js运算符

运算符

Js 运算符:也叫操作符

通过运算符可以对一个或多个值进行运算,并获取运算结果

一、算术类:

1、+ 求和  var c = 123;  console.log(“c =”+c) // c = 123 ;

2、- 减法  console.log(1 + 2 + “3”) //33从左往右运算

3、* 乘法运算  被除数不能为0,否则返回Infinity

4、/  除法运算

5、%(求模、取余)

//隐式转换:对于非Number类型的值进行运算时,会将值转换为Number然后进行运算。可以通过为一个值-0,*1,/1来将其转换为Number类型。原理和Number()一样

//只有+不能隐式转换,任何值和字符串相机加,都会转换为字符串做拼串。

为任意的数据类型+一个 ,即可将其转为String类型。实际上是调用String函数

实际上是调用String函数

特殊字符转为数字运算:true=1;false=0;null=0;NaN和任何数据做运算都等于NaN.

//为假值的场景?

解:false

//bool:false “” ‘’(空字符串)

Console.log(false == ‘’)//true、js中空格是假值 0 ‘0’0.0

1、+:加法运算:符号两边都是数字类型

:连接符:有一个不为数字则做连接

Var num1= 100;

Var num2= 200;

Console.log(num1+num2)

//字符串连接

Console.log(name+” ”+” ”);

//字符串拼接变量

Var msg = “i’m a var ...”;

Document.write(“<div>”+mes+”</div>”)

Document.write(‘<p>’+mes+’</p>’)

2、//数字字符串做减法

//”弱”数据类型语言:隐式转换

//”强”类型

//隐式转换:自动化(数字字符串)

//纯字符无法作用隐式转换

Var str =”100mea”

Var str2 =”200msdf”

Console.log(str-str2)//NaN not a number

//强制类型:手动操作(只能转换数字开头的字符串,否则NaN返回)

//paresFloat();//字符串转化为浮点数

//paresInt();//字符串转化为整数(小数点省略)

Str = paresFloat(str)

Console.log(str,str2)

Coonsole.log(paresInt(“109.9mewef”)//110

Coonsole.log(paresInt(“mewef”)//NaN

Coonsole.log(paresInt(“mewef26565”)//NaN

二、一元运算符:只需要一个操作数

+正号   不会对数字产生任何影响,可以对一个其他数据使用+,将其转换为Number

-负号   符号取反  对于非Number类型的值,它会将其转换为Number,然后运算

原理和Number()函数一样。

var a=1 + +”2” +3;console.log(a) //6

三、自增自减运算符

//后++  --   先输出再运算  权重低

//前++  --   先运算再输出  权重高

var a = 1;

Console.log(a++)// 1   Console.log(a--)// 1

Console.log(++a) // 2   Console.log(--a)// 0

运算符的优先级导致

1、前++和后++,都会立即使原来的变量的值自增1

但是a++的值等于自增前的值,++a的值等于自增后的值。/2、前--和后--,都会立即使原来的变量的值自减1

但是a--的值等于自减前的值,--a的值等于自减后的值。

var b = 10;

Var re = b++  +  ++d  +  b  // 10 + 12+12

Console.log(re) //34

四、逻辑运算符:最终结果(true 、false)

作用:程序的逻辑判断

1、逻辑与&& :所有条件都满足才为true

exp1(表达式1)  &&  exp2(表达式2)

if(age == 22 && sex=="男")//所有条件都满足才为true

if(a == 22 && s =="男")语法问题

第一个值为false,则不会检查第二个

2、逻辑或||: 至少一个条件满足就为true

     第一个值为true,则不会检查第二个

  1. 辑非!: (取反、非假即真)

对一个布尔值进行取反操作,对于非布尔值会将其转换成布尔值

  1. 逻辑抑或:xor

  1. 非布尔值进行逻辑运算时:先将其转为布尔值再运算,返回原值

   与运算:

都为true返回后面的值。 Var a= 5 && 2 ; console.log(a) //2

同为false,返回靠前的值.Var a= NaN && 0 ; console.log(a) //NaN

true和false同时存在,返回true的值 Var a= 0 && 2 ; console.log(a) //2

   或运算:

第一个值为true,则直接返回第一个值

第一个值为false,则直接返回第二个值

五、赋值运算符:将符号右侧的值给符号左边的变量

=、+=、-=、*=、/=、%=

Var a = ‘10’;

Var b = 20;

a -= b; //a= a-b 隐式转换

Console.log(a)//-10

六、比较运算符(关系运算符):判断,返回结果(false/true) 条件判断

>、 >= 、< 、<=  

==等于 //比较值是否相等会对变量进行类型转换

===全等于 //比较值与数据类型是否都相等

!=不等于 //比较值是否不相等,会对变量进行类型转换,转换后相等依然返回false

!==不全等于 //比较值与数据类型是否都不相等

Var a = 10; Var b = ‘20’;

Console.log(a>b) //false

Console.log(undefined == null) //true undefined衍生自null

Console.log(NaN == NaN) //任何值和NaN作比较都是false,包括和他本身

Console.log(false == []) //true数组不能为空

Console.log(false == {}) //falese 对象可以为空

Comsole.log(false == null) //false  null是对象可以为空

Console.log(‘a’>’Z’) //true//ascII码:数字//96 65

两端都是字符串时,不会将其转换为数字比较,比较的是字符编码、

并且是按顺序一位一位进行比较

  • 条件运算符也叫三元运算符

条件运算符用于基于条件的赋值运算。

语法:变量 = (条件) ? 值1:值2  

var a = 30  b = 20; var max = a > b ? a : b ;consle.log(max) // 30

比较三个数大小:

var a = 30 b = 20 c = 10;  var max = a > b ? a : b;  max = max > c ? max : c; consle.log(max) // 30

条件运算符在执行时,首先对条件表达式进行求值。

      如果该值为true,则执行语句1,并返回执行结果

      如果该值为false,则执行语句2,并返回执行结果

如果条件的表达式的求值结果是一个非布尔值,会将其转换为布尔值然后再运算。

  • 运算符的优先级

可以使用()来改变优先级

1、.、[]、new

2、()

3、++、 --

4、!、~、+、-、typeof、void、delete

5、%、*、/

6、+、-

7、<<、>>、>>>

8、<、<=、>、>=

9、==、!==、===

10、&

11、^

12、|

13、&&

14、||

15、?:

16、=、+=、-=、*=、/=、%=

17、,

比较运算符

算术类

逻辑类

赋值类

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值