javascript的字符串比较

今天写程序时发现了一个以前虽然知道但总没引起我注意的问题,记录一下,防止再犯。

代码像下面这样:

<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"哈。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>