主题:  简单的问题

阿文2

职务:普通成员
等级:1
金币:0.0
发贴:40
#12003/2/27 20:48:45
这个问题小弟上次没说清楚,现在再贴一次帖子,望各位高手指教。

请看以下几条表达式:

trace(true>flase);
返回true

a="10";
b=15;
trace(b|a);
返回15

a="10";
b=10;
trace(a==b);
返回trace

小弟想请教是不是,赋值运算符,比较运算符,比较运算符进行比较时都先进行转换,相当于先执行number(x)这条语句啊?谢谢。



s22

职务:版主
等级:4
金币:10.0
发贴:1634
#22003/2/27 21:21:30
trace(trace(true>flase);
返回true
是trace(表达式的值)当然先运算。
你遇到过不先运算的吗?



5D限制级

职务:普通成员
等级:6
金币:10.0
发贴:4970
#32003/2/27 21:38:09
找C语言查它的‘运算符优先级’



Demon.S

职务:版主
等级:5
金币:10.0
发贴:2468
#42003/2/28 12:43:04
这些不是优先级的问题.

1 trace(true>flase); returns true 因为 true=1 false=0 1>0 难道不对?

2
a="10";
b=15;
trace(b|a); returns 15 这个你已经被迷惑了,因为这个15不是你所有的b的值15, 是F 而10->1010 和 15-> 1101所得到的值肯定是1111 既是F ->15 ,其实你也可以用 1|14 或者 9|6 会得到同样的值,不信你可以用 8|4 肯定是12哦 :) 因为他们在做2进制位运算.

a="10";
b=10;
trace(a==b);
returns true....这个只是字符和数字的强制转换问题……转换结果10==10 当然是true....


D:)S

编辑历史:[这消息被画魔编辑过(编辑时间2003-02-28 12:43:54)]


阿文2

职务:普通成员
等级:1
金币:0.0
发贴:40
#52003/3/1 20:15:27
那么是不是位运算符、比较运算符等所有的运算符进行运算时都先吧相应字符串、关键字等进行转化。若真是这样的话这些字符串、关键字又如何转化法?那些运算符运算时需要转化?哪些又不需要啊,小弟只知道"===","!==="这两个运算符进行运算时相应的字符串、关键字不需要转化。至于哪些运算符运算时需要转化,而与之相应的字符串、关键字又如何转化小弟就不太懂了。还请各位高手指点。