javascript - var a = "23" < "3",a为什么是boolean值true?
伊谢尔伦
伊谢尔伦 2017-04-11 12:25:46
[JavaScript讨论组]
var a="23" < "3";
console.log(a);    // true
console.log(isNaN(a));    // false

偶然遇到的,请帮忙解答,谢谢

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(9)
怪我咯

字符串比较就是这结果吧

黄舟

因为是字符串

迷茫

字符串之间比较的是首个字符开始逐个比较。

巴扎黑

先拿第一位比较,再依次比较。

黄舟

你需要首先弄懂字典序。

function strcmp (s1, s2) {
    
    var len = Math.min(s1.length, s2.length);
    
    for(var i = 0; i < len; i++) {
        
        var c1 = s1.charCodeAt(i),
            c2 = s2.charCodeAt(i);
            
        if(c1 != c2) return c1 - c2;
    }
    
    return s1.length - s2.length;
}

strcmp ("23", "3") < 0;
// true
巴扎黑

字符串比较,现比较第一位。2<3,over!

迷茫

1.字符串,以及字符串比较
2.js是弱类型语言,字符串与数字之间的转换
3.运算符的优先级别

黄舟

我来回答

var a="23" < "3"

相当于

var a=("23" < "3")

而字符串比较是按字符逐个比较,"2"在ASCII中值比"3"小,所以"23""3"小,所以结果为真(true)

高洛峰

这是符号的优先级导致的,<的优先级比=的高

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号