javascript基础-各种运算符的知识点与运用

目录

算数运算符

一元运算符

自增自减

逻辑运算符

赋值运算符

关系运算符

条件运算符

逗号运算符

运算符优先级


运算符也叫操作符,通过运算符可以对一个或者多个值进行运算,并获取运算结果。

例:typeof就是运算符,可以来获得一个值的类型,它会将该值的类型以字符串的形式返回。

算数运算符

当对非number类型的值进行运算时,会将这些值转换为number然后再运算。

任何值和NaN做运算逗得NaN

  • +        可以对两个值进行加法运算,并将结果返回

如果两个字符串进行加法运算,则会拼串,会将两个字符串拼接为一个并返回。

任何值和字符串相加都会转换为字符串,并做拼串操作,我们可以利用这一点,来讲一个任意的数据类型转换为String类型。这是一种隐式的类型转换,由浏览器自动完成,实际上它也是调用String()函数。

  • -        可以对两个值进行减法运算,并将结果返回
  • *        可以可对两个值进行乘法运算
  • /        可以对两个值进行除法运算 
  • %      取模运算 (取余数)

任何值做- * / 运算时都会自动转换为Number,可以利用这一特点做隐式的类型转换。可以通过为一个值-0 *1 /1来将其转换为Number。原理和Number()函数一样,使用起来更加简单。

一元运算符

一元运算符只需要一个操作数。

  • +    正号不会对数字产生任何影响。
  • -       负号可以对数字进行负号的取反。
  • 对于非Number类型的值,它会先将转换为Number,然后再运算。可以对一个其他的数据类型使用+,来将其转换为number,他的原理和Number()函数一样。

自增自减

  • 自增可以使得变量在自身的基础上加1,a++ <=> a=a+1,++a <=> a=a+1,自带赋值,前后++与C语言相同

  • 自减可以使得变量在自身的基础上减1,a-- <=> a=a-1,–a <=> a=a-1,自带赋值,前后–与C语言相同

  • a++的值等于原变量的值(自增前的值) ++a的值等于新值(自增后的值)

  • 唯一的区别是后++是先给值然后马上自增。例如

var b=10;
console.log(b++ + ++b + b);
结果是
   10+12+12=34       
并且注意
var b=10;
b=b++;
console.log(b);
等价于
var b=10;
var c=b++;
b=c;
console.log(b);
同样的--同理

逻辑运算符

三个:非!,与&&,或||

  • !:对bool进行运算就是取反,对非bool会先转化为bool。如果对一个值进行两次取反,它不会变化。 我们可以利用该特点,来将一种其他的数据类型将其转化为bool,方法是!!tmp,原理和Boolean()函数一样。

var a=false;
console.log(!a);
console.log(!!a);

var b=10;
console.log(!b);
console.log(!!b);


true
false
false
true
  • && 与 –&可以对符号两侧的值进行与运算并返回结果 –运算规则: —两个值中只要有一个值为false就返回false 只有两个值都为ture时,才会返回ture —JS中的“与”属于短路的与 如果第一个值为false,则不会看第二个值

  • || 或 –运算规则: —JS中的“或”属于短路的或 如果第一个值为false,则会检查第二个值

  • 与运算:

  1. 如果两个值都是true,则返回后边的 – result = 5&&6; 输出6

  2. 如果两个值中有false,则返回靠前的false – result = 0&&6; 输出0 规则小结: 如果第一个值是ture, 则返回第二个值 如果第一个值是false,则返回第一个值

  • 或运算: 如果第一个值是ture, 则返回第一个值 如果第一个值是false,则返回第二个值

返回值就是在加入短路原则之后最后判断的那个元素

赋值运算符

+=,-=,*=,/=,%=与C完全相同

赋值运算符 =

- 可以将符号右侧的值赋值给左侧变量

+=
		- a += 5 相当于 a = a+5
		- var str = "hello";  str += "world";
		
	-=
		- a -= 5  相当于 a = a-5
		
	*=
		- a *= 5 相当于 a = a*5
		
	/=
		- a /= 5 相当于 a = a/5	

	%=
		- a %= 5 相当于 a = a%5	

关系运算符

关系成立返回true,关系不成立返回false >,>=,<,<=,==,!=

除了==与!=符号:

非数值的情况: 转化为Number, 任何值与NaN比较都是false

对于==与!=符号: 类型不同会自动进行类型转化,但是左边转右边还是右边转左边都不一定,注意的是undefinednull,任何值NaN都为false, 包括NaN。

双等号==:

如果两个值类型相同,再进行三个等号(===)的比较
如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:
如果一个是null,一个是undefined,那么相等
如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较

三等号===: 

如果类型不同,就一定不相等
如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。(判断一个值是否是NaN,只能使用isNaN( ) 来判断)
如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。
如果两个值都是true,或是false,那么相等
如果两个值都引用同一个对象或是函数,那么相等,否则不相等
如果两个值都是null,或是undefined,那么相等

条件运算符

JavaScript 还包含了基于某些条件对变量进行赋值的条件运算符。

语法:variablename=(condition)?value1:value2;

举例:result=(age<18)?"年龄太小":"年龄合适";

执行流程:如果condition为true,则执行语句1,并返回执行结果,如果为false,则执行语句2,并返回执行结果。

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

语法:

条件表达式?语句1:语句2 ;

-执行流程:

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

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

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

如果条件的表达式的求职结果是一个非布尔值,

会将其转换为布尔值然后在运算。

逗号运算符

使用逗号可以在一条语句中执行多次操作。

比如:var num1=1, num2=2, num3=3;

使用逗号运算符分隔的语句会从左到右顺 序依次执行。

运算符优先级

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值