运算符本身是为数据服务的。
加减乘除是不是运算符?是,但运算符不只有加减乘除,就像是苹果,香蕉,猕猴桃都叫水果,但是水果并不是只有猕猴桃,还有西瓜。什么意思?
意思是有很多其他的字符也叫运算符。
一个很有意思的事情,水果的定义到底是什么?如果不深究,也许是充满水分的?但是香蕉好像没那么多水,也许是长在树上的?也不是,西瓜长在地上。能吃的?有些水果有毒,不能食用。
所以很难定义什么是水果,但是如果你爸妈问你要不要吃水果,你不会想到那些有毒的,没见过的水果,只会想到常见的那些。此时的水果含义可以认为是缩小化的,但在此时此刻水果的意义就是这样。
在你的世界里,你叫黄瓜水果完全可以,但有些人会说那是蔬菜,但真的不算吗?
水果,我们用几个条件去约束。可食用,味道好,长在地球上。
所以关运算符什么事?
因为如果想定义一个事物,就得给出这个事物的本质特征。
运算符的本质特征就是为了数据服务。
1+2=3;
一个问题,离开了数字,+号有意义吗?
var a=1;
var b=2;
var c;
c=a+b;
=的优先级为7,+的优先级为4;
=的结合性是从右到左,+的结合性是从左到右;
先不考虑上面两条,看看这个式子的运行顺序:
先计算a+b,然后把值给c,这是明面上的东西,但谁能说清楚计算机内部到底是如何进行的?知道真正的运行原理才是真的明白了,否则都是在结果上进行探究而已。
结合性到底是什么?
a+b,就这三个字符而言,我真的看不出来结合性发挥了什么作用。接着看,c=a+b,这个就是说把=号右边的结果给c,以=为分割线,可以把这个式子看成两部分,a+b和c。
想象一下自己的面前有两个篮子,左右各一个,ok,现在右边篮子里面有三个鸡蛋,然后我拿起三个鸡蛋放入左边篮子当中。
这个过程有什么特点?很简单,就是说我是在把右边篮子中的鸡蛋放入左边,而不是左边放入右边。记住,这不是废话,这是不可出错的步骤,虽然简单,但是就是这么重要。
所以结合性是什么?
应该这么思考,如果没有结合性会怎样?看一个式子:
c=d;
啥意思?没意思,没有意义。
所以,=号的实质和鸡蛋篮子的实质一样,它定义了一个动作:把右边篮子里的鸡蛋放到左边篮子当中。
所以,这一动作是从右往左的(更好玩的是,到底什么是左右?哈哈),代表着一种顺序。
所以结合性是什么?不知道
结合性的中文是什么意思?结合?代表着组合,一个事物与另一个事物进行联系,比方说“结合理论与实际”,结?打结,一种动作,合,也是一种动作,“合二为一”,所以结合的含义就是两件事物本身变得有联系了。
结合本身就是一种性质,所以叫结合性。
继续,三元运算符,?:
为什么叫三元?三个元素,就是三个东西。三元运算符指的是“本运算符要对三个元素动手!”
var a=2;
var b=(a==1)?1:2;
优先级和结合性:
==:从左向右,7级
?: :从右向左,13级
=:从右向左,14级
- 首先登场的是==,它关乎两个东西,a,1,拿左边篮子中的a去和右边篮子的1相比,结果是false;
- 其次登场的是?:,它先按照结果false去找到1,然后返回1这个值
- 最后登场的是=,右篮子鸡蛋放左边。
?:为什么是从右至左?
到此为止,先停一下,因为我错了。
你看,即便是花了很多功夫也不一定能理解这结合性到底是啥,说明我被误导了。