JavaScript 数字与字符串 比较大小

总结一下JS中经常遇到纯数字和各种各样的字符串进行比较:

  • 纯数字之间的比较

   alert(1<3);//true

  • 数字字符串比较,会将其先转成数字

   alert("1"<"3");//true

   alert("123"<"123");//false

  • 纯字符串比较,先转成ascii码

   alert("a"<"b");//true

   alert("abc"<"aad");//false,多纯字母比较,会依次比较ascii码

  • 汉字比较

   alert("我".charCodeAt());//25105

   alert("的".charCodeAt());//30340

   alert("我"<"的");//true,汉字比较,转成ascii码

  • 当数字和字符串比较,且字符串为数字。则将数字字符串转为数字

   alert(123<"124");//true,下面一句代码得出124的ascii码为49,所以并不是转成ascii比较

   alert("124".charCodeAt());//49  

  • 当数字和字符串比较,且字符串为非纯数字时,则将非数字字符串转成数字的时候会转换为NaN,当NaN和数字比较时不论大小都返回false.

   alert(13>"abc");//false

原文地址:https://www.cnblogs.com/dengyulinBlog/p/7058172.html