今天写程序时发现了一个以前虽然知道但总没引起我注意的问题,记录一下,防止再犯。
代码像下面这样:
<script type="text/javascript">
var aheight ="290px";
var bheight;
var val = (bheight>aheight)?aheight:bheight;
alert(val);
</script>
很简单,元素a的高是290px,元素b的高是变动的,val的值等于a和b中高度小的。恩,好像没啥不对。
bheight="210px",试试 ,val="210px",对;bheight="160px",再试,val="160px",还对;那么bheight="99px"呢?val的值是99px吗?错了,这时候alert出了290px。
呵呵,忘了javascript的字符串比较是从第一个字符开始一个一个字符比较的了,当两个字符相等时接着比较下一个,当出现不相等的就停下。在这个例子里,"29"大于"21",所以"290px">"210px","2"大于"1",所以"290px">"160px",而9大于2,所以"99px">"290px"哈。