JavaScript字符串&数字间转换
2016-03-25 11:03
519 查看
比较操作符的操作数可以是任意类型。然而,只有数字和字符串才能真正执行边角操作,因此那些不是数字和字符串的操作数都讲进行类型转换,类型转换规则如下:
如果操作数为对象,那么对象转换为原始值:如果valueOf()返回一个原始值,那么直接使用这个原始值。否则,使用toString()的转换结果进行操作。
在对象转换为原始值之后,如果两个操作数都是字符串,那么将依照字母表的顺序(及16位Unicode字符的索引顺序)对两个字符串进行比较。
在对象转换为原始值之后,如果至少有一个操作数不是字符串,那么两个操作数将转化为数字进行比较。0和-0相等。Infinity比其他任何数字都大(除本身),-Infinity比其他任何数字都小(除本身)。如果其中一个操作数是(或转换后是)NaN,那么标胶结果总是返回false。
<script type="text/javascript">
function test(){
//1)纯数字之间比较
//alert(1<3);//true
//2)数字字符串比较,会将其先转成数字
//alert("1"<"3");//true
//alert("123"<"123");//false
//3)纯字符串比较,先转成ascii码
//alert("a"<"b");//true
//alert("abc"<"aad");//false,多纯字母比较,会依次比较ascii码
//4)汉字比较
//alert("我".charCodeAt());//25105
//alert("的".charCodeAt());//30340
//alert("我"<"的");//true,汉字比较,转成ascii码
//5)当数字和字符串比较,且字符串为数字。则将数字字符串转为数字
//alert(123<"124");//true,下面一句代码得出124的ascii码为49,所以并不是转成ascii比较
//alert("124".charCodeAt());//49
//6)当数字和字符串比较,且字符串为非纯数字时,则将非数字字符串转成数字的时候会转换为NaN,当NaN和数字比较时不论大小都返回false.
alert(13>"abc");//false
}
</script>
链接:http://www.cnblogs.com/icerainsoft/p/3448161.html
如果操作数为对象,那么对象转换为原始值:如果valueOf()返回一个原始值,那么直接使用这个原始值。否则,使用toString()的转换结果进行操作。
在对象转换为原始值之后,如果两个操作数都是字符串,那么将依照字母表的顺序(及16位Unicode字符的索引顺序)对两个字符串进行比较。
在对象转换为原始值之后,如果至少有一个操作数不是字符串,那么两个操作数将转化为数字进行比较。0和-0相等。Infinity比其他任何数字都大(除本身),-Infinity比其他任何数字都小(除本身)。如果其中一个操作数是(或转换后是)NaN,那么标胶结果总是返回false。
<script type="text/javascript">
function test(){
//1)纯数字之间比较
//alert(1<3);//true
//2)数字字符串比较,会将其先转成数字
//alert("1"<"3");//true
//alert("123"<"123");//false
//3)纯字符串比较,先转成ascii码
//alert("a"<"b");//true
//alert("abc"<"aad");//false,多纯字母比较,会依次比较ascii码
//4)汉字比较
//alert("我".charCodeAt());//25105
//alert("的".charCodeAt());//30340
//alert("我"<"的");//true,汉字比较,转成ascii码
//5)当数字和字符串比较,且字符串为数字。则将数字字符串转为数字
//alert(123<"124");//true,下面一句代码得出124的ascii码为49,所以并不是转成ascii比较
//alert("124".charCodeAt());//49
//6)当数字和字符串比较,且字符串为非纯数字时,则将非数字字符串转成数字的时候会转换为NaN,当NaN和数字比较时不论大小都返回false.
alert(13>"abc");//false
}
</script>
链接:http://www.cnblogs.com/icerainsoft/p/3448161.html
相关文章推荐
- javascript小实例,拖拽应用(一)
- 读书笔记--浏览器中的javascript
- Echarts 后台传入数据
- javascript中对象的深浅拷贝
- json jsonlib fastjson jackjosn使用
- js版 A*寻路算法
- HTML JavaScript及运算符
- javascript跳跃式前进(1) - 基本概念
- javascript跳跃式前进(1) - 基本概念
- Servlet与jsp间的传值问题
- JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
- JSP中page和pageContext的区别
- JS 运动框架2 链式运动
- JSON与XML的区别比较
- JS过滤空格,回车符。
- HTML、css、JavaScript 代码分离
- js关闭窗口
- 百度地图开发
- js闭包
- js获取服务器端时间