由一个网站注册验证码带来的思考

下面给出一个网站的验证码提示

      <script type="text/javascript">
        
// javascript

        
function show(a) {
            alert(
2 < a < 3);
        }

        show(
1);
    
</script>

 

就是这样简单的一段代码,学过java、c#的高手门肯定猛然间认为"这不可能,语法通不过"

我当时也是这么认为

 

之后我想不填点东西注册过不去,没办法简单的做了下分析第一感觉如果可以跑起来那应该是 false

 

结果注册不成功!

 

 我不辞劳苦打开editplus 粘上代码运行下

 

居然是  true   不可思议!

 

百思不得其解,打开QQ问下大牛们,得到解释

 

若类型  false  会自动转为  0

 

 如果是  那就是  2<1  → false

false  转 0
0<3   →  true

 ps:  alert 相当于 那个 consle.write() 对字符串会有一个重载处理工程

常常一会写弱类型(JavaScript),一会写强类型(java,c#),未免犯迷糊.....

 那大家测试下下面的代码吧:

0.alert(Number(false)); 
1. alert(-1< a < -2)
2.alert(8-true)
3.alert(true+false

 

 运行完我相信你肯定懂了.....

posted @ 2010-12-16 22:15  北望  阅读(514)  评论(2编辑  收藏  举报