一元运算符,自增自减运算符,逻辑运算符,赋值运算符,关系运算符,相等运算符,条件运算符

一元运算符

一元运算符,只需要一个操作数就可以了

  • 正号
    正号不会对数字产生任何影响
  • 负号
    负号可以对数字进行负号的取反

对于非number类型的值,它会先转换为number,然后在运算

可以对一个其他的数据类型使用 + ,来将其转换为number,其原理和number() 函数一样

var a = 123;
a = +a;
a = -a;
			
a = true;
a = -a;
console.log(a);
console.log(typeof a);
			
// 在字符串前面加一个加号 就相当于要字符串转换为number类型进行运算
var result = 1 + +"2" + 3;
console.log("result = " + result);

自增自减运算符

自增 ++

通过自增使变量在自身的基础上增加1

对于一个变量自增以后,原变量的值会立即自增1

a++ 和 ++a 都会立即使原变量的值自增1

不同的是a++ 和 ++a 的值不同

a++ 的值是原变量的值(自增前的值)

++a 的值是新值 (自增后的值)

自减 - -

通过自增使变量在自身的基础上减1

a-- 和 --a 都会立即使原变量的值自减1

不同的是a-- 和 --a 的值不同

a-- 的值是原变量的值(自减前的值)

–a 的值是新值 (自减后的值)

var a = 1;
// 使a自增1
a++;
console.log(a);
			
var b = 10;
c = ++b;
console.log(c,b);

逻辑运算符

js中为我们提供了三种逻辑运算符

&& 与

对于布尔值情况

可以对符号两侧的值进行运算与并返回结果

  • 两端都是true,则返回true
  • 只要有一个false,就返回false

js中的 “与” 属于短路与,如果第一个值为false 则不会看第二个了
第一个值为 true 就会看第二值

对于非布尔值情况

会先将其转换为布尔值然后在运算,并且返回原值

  • 如果都有true 则返回后面那一个的值
  • 如果第一个值为false,则直接返回第一个的值

|| 或

对于布尔值情况

可以对符号两侧的值进行运算与并返回结果

  • 两端都是false,则返回false
  • 只要有一个true,就返回true

js中的 “与” 属于短路或,如果第一个值为true 则不会看第二个了
第一个值为 false 就会看第二值

对于非布尔值情况

会先将其转换为布尔值然后在运算,并且返回原值

  • 如果都有false 则返回后面那一个的值
  • 如果第一个值为true,则直接返回第一个的值

!非

可以用来对一个值进行非运算,对布尔值进行取反操作

  • true变false false变true

如果对非布尔值运算就会将其装换为布尔值然后进行取反操作

可以利用该特点将其他类型的值转换为布尔值,给任意数据类型取反两次就可以不改变数值的转换

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

var result = false|| false;
var result = true || false;
var result = true || true;
var result = false|| true;

console.log(result);

赋值运算符

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

  • +=
    a += 5; 等价于 a = a + 5;

  • -=
    a -= 5; 等价于 a = a - 5;

  • *=
    a *= 5; 等价于 a = a * 5;

  • /=
    a /= 5; 等价于 a = a / 5;

  • %=
    a %= 5; 等价于 a = a % 5;

关系运算符

通过关系运算符可以比较两个值之间的关系

如果关系成立它会返回true,如果不成立就返回false

  • (>) 大于号
  • (<) 小于号
  • (>=) 大于等于号
  • (<=) 小于等于号
非数字的情况
对于非数字比较时,会将其转换成数字在将其比较
任何值与NaN做任何比较都是false
如果符号两侧的值都是字符串,不会将其转换为数字进行比较,会分别转换为Unicode码然后一位一位进行比较
可以利用这个来进行英文的排序

注意:在比较两个字符串型的数字时,一定要转型,不然结果就可能会出问题,在字符串前面加一个加号就可以转为数字

相等运算符

相等运算符用来比较两个值是否相等

如果两个值相等会返回true,不相等返回false

使用 == 来做相等运算

  • 当使用 == 来比较两个值,如果值的类型不同,则会自动进行类型转换。将其转换为相同的类型,然后在比较

不相等 !=

  • 不相等返回true 否则返回false

全等 ===

  • 值和类型要全部相等 才返回true 否则false

不全等 !==

  • 值和类型有一个不同就会返回true

undefined 衍生自null,所以这两个值做相等是返回true
注意:NaN不和任何值相等包括它本身,但是可以通过isNaN()函数来判断一个值是否相等与NaN,如果该值是NaN则返回true 否则false

var b = NaN;
console.log(isNaN(b));

条件运算符

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

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

条件运算符在执行时 首先对条件表达式进行求值
如果该值为true,则执行语句1,并返回执行结果
如果该值为false,则执行语句2,并返回执行结果

如果条件表达式是一个非布尔值,就会先转换为布尔值进行求值,在判断执行语句1或2

var a = 1;
var b = 2;
var c = 3;
d = a > b ? console.log(0) : console.log(1);
console.log(d);

这些运算符跟数学里的一样,都是具有优先级的,不过对于这么多的运算符要都去记优先级是比较困难的
所以有要用到优先级的可以去查运算符的优先级表,也可以用小括号将要先计算的表达式括起来

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值