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伐。

全部回复(11)
PHPz

https://developer.mozilla.org...

C developers have the strcmp() function for comparing strings. In JavaScript, you just use the less-than and greater-than operators:

就是strcmp的规则吧....

两个字符串自左向右逐个字符相比(按ASCII值大小相比较),
2<3

怪我咯

字符串比较就是这结果吧

黄舟

因为是字符串

迷茫

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

巴扎黑

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

黄舟

你需要首先弄懂字典序。

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!

天蓬老师

https://segmentfault.com/a/11...

迷茫

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

黄舟

我来回答

var a="23" < "3"

相当于

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

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

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

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