|
主题: 简单的问题
|
 阿文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
那么是不是位运算符、比较运算符等所有的运算符进行运算时都先吧相应字符串、关键字等进行转化。若真是这样的话这些字符串、关键字又如何转化法?那些运算符运算时需要转化?哪些又不需要啊,小弟只知道"===","!==="这两个运算符进行运算时相应的字符串、关键字不需要转化。至于哪些运算符运算时需要转化,而与之相应的字符串、关键字又如何转化小弟就不太懂了。还请各位高手指点。
|