JS之数据运算

数据的运算

运算符

算术(数学)运算

支持:加(+)、减(-)、乘(*)、除(/)、求余(%)

值得注意的是,+和-可以放到单个数据的前面,表示正负。

算术运算的表达式一定返回数字,可以利用其特点做类型转换,参考类型的隐式转换

字符串拼接

+的两端有一个是字符串时,不再进行算术运算,而变为字符串拼接

表达式一定返回string,可以利用其特点做类型转换,参考类型的隐式转换

赋值运算

涉及的运算符:= += *= /= -= %=

其中,a += xxx,等效于a = a + (xxx),其他类似

小贴士
赋值表达式始终返回赋值结果,我们可以利用该特点完成连续赋值

// 将 3 同时赋值给 a、b
a = b = 3;

比较运算

涉及的运算符:== === != !== > >= < <=

小贴士
在实际开发中,没有任何理由使用==!=,你可以当做这两个运算符并不存在。
应该始终使用===!==来比较相等和不相等

小贴士
比较运算始终返回boolean,我们可以利用这一点来完成某些赋值

// 啰嗦的代码
if(sex === '男'){
  user.isMale = true;
}
else{
  user.isMale = false;
}

// 简洁优雅的代码
user.isMale = sex === '男'

逻辑运算

逻辑运算会涉及到布尔判定

运算符:!

对后面的数据取反,表达式一定返回boolean。

可以利用其特点做类型转换,参考类型的隐式转换

运算符:&&

并且,真真为真,其他为假,具有短路规则。

表达式返回最后一个判定的数据

小贴士
在实际的开发中,我们可以利用短路规则简化代码

// 实现功能,如果exp有值(判定为真),就输出ok

// 啰嗦的代码
if(exp){
  console.log(exp);
}

// 简洁的代码
exp && console.log(exp)

运算符:||

或者,假假为假,其他为真,具有短路规则。

表达式返回最后一个判定的数据

小贴士
在实际的开发中,我们可以利用短路规则简化代码

// 实现功能,如果exp有值,就把它的值赋值给n,如果没有值,就给n赋值为默认值 1

// 啰嗦的代码
if(exp){
  n = exp;
}
else{
  n = 1;
}

// 简洁的代码
n = exp || 1;

运算符:? :,格式a ? b : c

三目运算,判定a,为真时表达式返回b,否则返回c

小贴士
三目运算通常用于替代一些简单的if结构

// 如果exp为真,则把1赋值给n,否则,把2赋值给n
// 啰嗦的代码
if(exp){
  n = 1;
}
else{
  n = 2;
}

// 更简洁的代码
n = exp ? 1 : 2;

布尔判定

所有需要判断真假的地方都会使用下面的规则

数据判定
false null undefined 0 NaN ''false
剩余所有数据true

类型的隐式转换

每个运算符都有自己期望的数据,比如*期望两端都是数字

一旦数据不符合运算符的期望,js就会悄悄的对数据进行类型转换,把它转换成期望的值后进行运算。

值得注意的是,这种转换是 临时 的,并不会对原数据造成影响

小贴士
在实际的开发中,我们可以利用类型的隐式转换完成以下功能:

var n = +a; // 不管a是啥,都会被转换成数字,保存到n中
var s = a + ''; // 不管a是啥,都会被转换成字符串,保存到s中
var b = !!a; // 不管a是啥,都会被转换成boolean,保存到b中
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狡辉两门

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值