JavaScript学习笔记(四) 运算符大全


算术运算符

  • 加法运算符:x+y
  • 减法运算符:x-y
  • 乘法运算符:x*y
  • 除法运算符:x/y
  • 余数运算符:x%y
  • 指数运算符:x**y
  • 自增运算符:x++、++x
  • 自减运算符:x–、--x
  • 数值运算符:+x
  • 负数运算符:-x

加法运算符

JavaScript中加法与大多数语言一致,加号可连接字符串。

console.log(1+1); //2
console.log(1+'hello'); //1+hello
console.log(1+2+'3'); //33

bool值相加会将bool值转换为数值,再进行运算

console.log(1+true); //2
console.log(true+true); //2

其他算术运算符

除加法运算符外,其余算数运算符都会先将参与运算的操作数转化数值,再执行运算

console.log(1-'2'); //-1
console.log(1*'2'); //2
console.log(1/'2'); //0.5

对象的相加

如果参与加法运算的操作数为对象,需先将其转化为原始类型(一般为[object object]),再相加。

var person={
   
		name:'Maria',
		age:20,
		sex:"女"
};
console.log(person+1); //[object Object]1

原始类型: Null,Undefined,Boolean,Number,String,Symbol,Object


转换为原始类型的过程:

  • 调用对象的valueOf(),返回对象本身

    var person={
         
    	name:'Maria',
    	age:20,
    	sex:"女"
    };
    console.log(person.valueOf()); //{name: "Maria", age: 20, sex: "女"}
    
  • 调用对象的toString(),默认返回[object object]

    var person={
         
    	name:'Maria',
    	age:20,
    	sex:"女"
    };
    console.log(person.toString()); //[object Object]
    

了解到转换为原始类型的过程后,我们可以自定义valueOf()或toString()来实现对象的相加

// 自定义valueOf
var person={
   
	name:'Maria',
	age:20,
	sex:"女",
	valueOf:function(){
   
		return this.age;
	}
};
console.log(person+1); //21
// 自定义toString
var person={
   
	name:'Maria',
	age:20,
	sex:"女",
	toString:function(){
   
		return this.age;
	}
};
console.log(person+1); //21

注意: 如果操作数为Date对象,则其转换为原始类型会先调用toString方法


余数运算符

运算结果的正负号由第一个操作数决定,建议使用绝对值(Math.abs)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值