<,>,<=,>=的比较规则
所有比较运算符都支持任意类型,但是比较只支持数字和字符串,所以需要执行必要的转换然后进行比较,转换规则如下:
1. 如果操作数是对象,转换为原始值:如果valueOf方法返回原始值,则使用这个值,否则使用toString方法的结果,如果转换失败则报错
2. 经过必要的对象到原始值的转换后,如果两个操作数都是字符串,按照字母顺序进行比较(他们的16位unicode值的大小)
3. 否则,如果有一个操作数不是字符串,将两个操作数转换为数字进行比较
+运算符工作流程
1.如果有操作数是对象,转换为原始值
2.此时如果有一个操作数是字符串,其他的操作数都转换为字符串并执行连接
3.否则:所有操作数都转换为数字并执行加法