转:http://blog.csdn.net/dxnn520/article/details/8267173

var定义的变量应该是字符串,有时没有经过类型转换而进行比较的话,小于十的话还可以,如果大于十就会出错

例:

 1 var hour_select_begin=$('#hour_select_begin option:selected').text();
 2
 3 var hour_select_end=$('#hour_select_end option:selected').text();
 4
 5 if(hour_select_begin>hour_select_end){
 6
 7 alert("开始时间不能大于结束时间");
 8
 9 return false;
10
11 }

这时如果 hour_select_begin>=10 则判断会有问题;
修正方法1:

if(eval_r(hour_select_begin)>eval_r(hour_select_end)){
alert("开始时间不能大于结束时间");
return false;
}
修正方法2:
将String转为number类型: hour_select_begin=hour_select_begin-0;
hour_select_begin=hour_select_end -0;

补充:

js 字符串转换数字  
方法主要有三种

转换函数、强制类型转换、利用js变量弱类型转换。

1. 转换函数:

js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。

一些示例如下:

parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN

parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:

parseInt("AF", 16); //returns 175
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:
parseInt("010"); //returns 8
parseInt("010", 8); //returns 8
parseInt("010", 10); //returns 10

parseFloat()方法与parseInt()方法的处理方式相似。
使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。

下面是使用parseFloat()方法的示例:
parseFloat("1234blue"); //returns 1234.0
parseFloat("0xA"); //returns NaN
parseFloat("22.5"); //returns 22.5
parseFloat("22.34.5"); //returns 22.34
parseFloat("0908"); //returns 908
parseFloat("blue"); //returns NaN

2. 强制类型转换

还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
ECMAScript中可用的3种强制类型转换如下:
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
当要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。

可以用下面的代码段测试Boolean型的强制类型转换。

Boolean(""); //false – empty string
Boolean("hi"); //true – non-empty string
Boolean(100); //true – non-zero number
Boolean(null); //false - null
Boolean(0); //false - zero
Boolean(new Object()); //true – object

Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。示例如下:

用  法 结  果
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "5.5 ") 5.5
Number( "56 ") 56
Number( "5.6.7 ") NaN
Number(new Object()) NaN
Number(100) 100

最后一种强制类型转换方法String()是最简单的,示例如下:

var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString(); //won’t work, causes an error

3. 利用js变量弱类型转换

举个小例子,一看,就会明白了。
<script>
var str= '012.345 ';
var x = str-0;
x = x*1;
</script>

上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的

转换成数字

ECMAScript提供了两种把非数字的原始值转换成数字的方法,即parseInt()和parseFloat()。
注意:只有对String类型(Number除外)调用这些方法,才能正确运行对其他类型返回的都是NaN。

例如:

Js代码

var iNum1 = parseInt(“1234blue”);//returns 1234    var iNum2 = parseInt(“oxA”); //returns 10    var iNum3 = parseInt(“22.5″); //returns 22    var iNum4 = parseInt(“blue”); //returns NaN

以下其他类型转换

一、类型转换

1.转换成字串

ECMAScript的Boolean值、数字和字串的原始值的有趣之处在于它们是伪对象,这意味着它们实际上具有属性和方法。
如:

Js代码
var sColor = “blue”;

alert(sColor.length);//outputs “4″

总而言之,3种主要的原始值Boolean值、数字和字串都有toString()方法。ECMAScript定义的所有对象都有toString()方法,无论它是伪对象,还是真的对象。

Boolean型的toString()方法只是输出”true”或”false”,结果由变量的值决定:

Js代码
var bFound = false;

alert(bFound.toString());//outputs “false”

Number类型的toString()方法比较特殊,它有两种模式,即默认模式和基模式,采用默认模式,toString()方法只是用相应的字符串输出数字值(无论是整数、浮点数还是科学记数法)。

Js代码

var iNum1 = 10;    var fNum2 = 10.0;    alert(iNum1.toString()); //outputs “10″    alert(fNum2.toString()); //outputs “10″

采用Number类型的toString()方法的基模式,可以用不同的基(进制基数)输出数字。

Js代码

var iNum = 10;    alert(iNum.toString(2));  //outputs “1010″    alert(iNum.toString(8));  //outputs “12″    alert(iNum.toString(16)); //outputs “A”

2.转换成数字

ECMAScript提供了两种把非数字的原始值转换成数字的方法,即parseInt()和parseFloat()。
注意:只有对String类型(Number除外)调用这些方法,才能正确运行对其他类型返回的都是NaN。

例如:

Js代码

var iNum1 = parseInt(“1234blue”);//returns 1234    var iNum2 = parseInt(“oxA”); //returns 10    var iNum3 = parseInt(“22.5″); //returns 22    var iNum4 = parseInt(“blue”); //returns NaN

parseInt()方法还有基模式,可以把二进制、八进制、十六进制或者其他任何进制的字符串转换成十进制整数。第二个参数指定按哪一种进制来解析。

Js代码

var iNum1 = parseInt(“AF”,16);// returns 175    var iNum2 = parseInt(“10″,2); // returns 2    var iNum3 = parseInt(“10″,8); //returns 8    var iNum4 = parseInt(“10″,10); //returns 10

说明:如果十进制数包含前导0,那么最好采用基数10,否则得到的是八进制的值。

Js代码

var iNum1 = parseInt(“010″);  // returns 8    var iNum2 = parseInt(“010″,8); //returns 8    var iNum3 = parseInt(“010″,10);//returns 10

parseFloat()方法与parseInt()方法的处理方式相似,从位置0开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字符之前 的字串转换成数字。对于这个方法来说,第一个出现的小数点是有效字符。如果用两个小数点,第二个小数点将被看作无效的。使用该方法的另一个不同之处在于, 字串必须以十进制形式表示浮点数。

Js代码

var fNum1 = parseFloat(“1234blue”); //returns 1234.0    var fNum2 = parseFloat(“0xA”); //returns NaN   var fNum3 = parseFloat(“22.5″); //returns 22.5    var fNum4 = parseFloat(“22.34.5″);//returns 22.34    var fNum5 = parseFloat(“0908″);//returns NaN    var fNum6 = parseFloat(“blue”);//returns NaN

3.强制类型转换
ECMAScript中可用的3种强制类型转换如下:
(1).Boolean(value)
把给定的值转换成Boolean型。
当要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。
如:

Js代码

var b1 = Boolean(“”); // false;    var b2 = Boolean(“hi”);//true    var b3 = Boolean(100);//true    var b4 = Boolean(null);//false    var b5 = Boolean(0);//false    var b6 = Boolean(new Object());//true

(2).Number(value)
把给定的值转换成数字(可以是整数或浮点数)。
还记得parseInt()和parseFloat()方法只转换第一个无效字符之前的字符串,因此”4.5.6″将被转换为”4.5″。用 Number()进行强制类型转换,”4.5.6″将返回NaN,因为整个字符串值不能转换成数字。如果字符串能被完整地转换,Number()将判断是 调用parseInt()方法还是调用parseFloat()方法。
如:

Js代码

Number(false);//0    Number(true);//1    Number(undefined);//NaN    Number(null);//0    Number(“5.5″);//5.5    Number(“56″);//56    Number(“5.6.7″);//NaN    Number(new Object());//NaN    Number(100);//100

(3).String(value)
把给定的值转换成字串。
与调用toString()方法的唯一不同之处在于,对null或undefined值强制类型转换可以生成字符串而不引发错误:

Js代码

var s1 = String(null);//”null”    var oNull = null;    var s2 = oNull.toString();//causes an error

二、引用类型
引用类型通常叫作类(class),也就是说,遇到引用值时,所处理的就是对象。ECMAScript定义了“对象定义”,逻辑上等价于其他程序设计语言中的类。

1.Object类
ECMAScript中的所有类都由这个类继承而来,Object类中的所有属性和方法都会出现在其他类中(被覆盖)。

Object类的属性:

(1).Constructor—-对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数。

(2).Prototype—-对该对象的对象原型的引用。对于所有的类,它默认返回Object对象的一个实例。 一、类型转换

1.转换成字串

ECMAScript的Boolean值、数字和字串的原始值的有趣之处在于它们是伪对象,这意味着它们实际上具有属性和方法。
如:

Js代码
var sColor = “blue”;   alert(sColor.length);//outputs “4″

总而言之,3种主要的原始值Boolean值、数字和字串都有toString()方法。ECMAScript定义的所有对象都有toString()方法,无论它是伪对象,还是真的对象。

Boolean型的toString()方法只是输出”true”或”false”,结果由变量的值决定:

Js代码
var bFound = false;   alert(bFound.toString());//outputs “false”

Number类型的toString()方法比较特殊,它有两种模式,即默认模式和基模式,采用默认模式,toString()方法只是用相应的字符串输出数字值(无论是整数、浮点数还是科学记数法)。

Js代码var iNum1 = 10;   var fNum2 = 10.0;   alert(iNum1.toString()); //outputs “10″  alert(fNum2.toString()); //outputs “10″

采用Number类型的toString()方法的基模式,可以用不同的基(进制基数)输出数字。

Js代码var iNum = 10;   alert(iNum.toString(2));  //outputs “1010″  alert(iNum.toString(8));  //outputs “12″  alert(iNum.toString(16)); //outputs “A”

parseInt()方法还有基模式,可以把二进制、八进制、十六进制或者其他任何进制的字符串转换成十进制整数。第二个参数指定按哪一种进制来解析。

Js代码var iNum1 = parseInt(“AF”,16);// returns 175  var iNum2 = parseInt(“10″,2); // returns 2  var iNum3 = parseInt(“10″,8); //returns 8  var iNum4 = parseInt(“10″,10); //returns 10

说明:如果十进制数包含前导0,那么最好采用基数10,否则得到的是八进制的值。

Js代码var iNum1 = parseInt(“010″);  // returns 8  var iNum2 = parseInt(“010″,8); //returns 8  var iNum3 = parseInt(“010″,10);//returns 10

parseFloat()方法与parseInt()方法的处理方式相似,从位置0开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字符之前 的字串转换成数字。对于这个方法来说,第一个出现的小数点是有效字符。如果用两个小数点,第二个小数点将被看作无效的。使用该方法的另一个不同之处在于, 字串必须以十进制形式表示浮点数。

Js代码var fNum1 = parseFloat(“1234blue”); //returns 1234.0  var fNum2 = parseFloat(“0xA”); //returns NaN  var fNum3 = parseFloat(“22.5″); //returns 22.5  var fNum4 = parseFloat(“22.34.5″);//returns 22.34  var fNum5 = parseFloat(“0908″);//returns NaN  var fNum6 = parseFloat(“blue”);//returns NaN

3.强制类型转换
ECMAScript中可用的3种强制类型转换如下:
(1).Boolean(value)
把给定的值转换成Boolean型。
当要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。
如:

Js代码var b1 = Boolean(“”); // false;  var b2 = Boolean(“hi”);//true  var b3 = Boolean(100);//true  var b4 = Boolean(null);//false  var b5 = Boolean(0);//false  var b6 = Boolean(new Object());//true

(2).Number(value)
把给定的值转换成数字(可以是整数或浮点数)。
还记得parseInt()和parseFloat()方法只转换第一个无效字符之前的字符串,因此”4.5.6″将被转换为”4.5″。用 Number()进行强制类型转换,”4.5.6″将返回NaN,因为整个字符串值不能转换成数字。如果字符串能被完整地转换,Number()将判断是 调用parseInt()方法还是调用parseFloat()方法。
如:

Js代码Number(false);//0  Number(true);//1  Number(undefined);//NaN  Number(null);//0  Number(“5.5″);//5.5  Number(“56″);//56  Number(“5.6.7″);//NaN  Number(new Object());//NaN  Number(100);//100

(3).String(value)
把给定的值转换成字串。
与调用toString()方法的唯一不同之处在于,对null或undefined值强制类型转换可以生成字符串而不引发错误:

Js代码
var s1 = String(null);//”null”  var oNull = null;   var s2 = oNull.toString();//causes an error

二、引用类型
引用类型通常叫作类(class),也就是说,遇到引用值时,所处理的就是对象。ECMAScript定义了“对象定义”,逻辑上等价于其他程序设计语言中的类。

1.Object类
ECMAScript中的所有类都由这个类继承而来,Object类中的所有属性和方法都会出现在其他类中(被覆盖)。

Object类的属性:

(1).Constructor—-对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数。

(2).Prototype—-对该对象的对象原型的引用。对于所有的类,它默认返回Object对象的一个实例。

转载于:https://www.cnblogs.com/kuiyeit/p/4793764.html

js,jquery的数字型字符串变量比较大小相关推荐

  1. java科学计数法转换为数字型字符串

    很多童鞋遇到过将科学技术发转换为数字型字符串的问题,一般通过BigDecimal来转换,但这样变量为科学计数法的可以正常转换,但变量为正常类型就会出现问题(会出现很长的数值),为保证科学计数法和普通数 ...

  2. pandas怎么去除nan_pandas缺失值处理之——如何消去Nan值对数字型字符串数据类型的影响,让数字型字符串保持原始str类型,而不会自动变为float类型?...

    在利用pandas处理表格时,往往有时我们用表格做的测试用例往往会设计考一些必填项*故意赋值为空(代表不输入)的测试用例, 比如说我们的手机号.身份证号码.社会统一信用代码等都是数字型字符串.如下所示 ...

  3. c++ 以逗号或者其他符号分割中英文字符串和数字型字符串

    目录 1. 数字型字符串 2. 分割数字型或者中英文字符串型的字符串 1. 数字型字符串 以逗号或者其他符号,分割数字型(同时支持int.double.float)字符串,并保存到vector数组中. ...

  4. 实现数字型字符串的加法运算

    实现数字型字符串的加法运算 如输入字符串num1="1234", num2="234",输出"1468";num1="1234&q ...

  5. HTML学习9 JS 数字和字符串 变量的类型 运算符和表达式 布尔值和关系运算符、逻辑运算符

    JavaScript简介 1.1 JavaScript的用途 JavaScript用来制作web页面交互效果,提升用户体验. 简单列出几个JavaScript能够制作的页面效果,它能干什么: 轮播图 ...

  6. js 判断是不是数字||判断字符串是不是数字(正则表达式)

    js使用正则表达式判断对象是不是数字,或者字符串是不是数字,或者是不是数字类型 1 //判断是不是一个数字 或者 一个字符串里全是数字 2 isNumber (value) { 3 if (value ...

  7. 返回相同宽度数字型字符串

    /**返回相同闊度數字型字串. 例:        function1("000000") => "000001"        function1(&q ...

  8. 给定两个很长的数字型字符串,并对它们进行加法运算,注意不是字符串拼接

    这加数的长度(1520位,940字节),如果用整型来保存,那会直接报错,因为整型才4字节,32位.下面给出被加数及运算结果. 加数 1234567812345678123456781234567812 ...

  9. 数字型字符串万位加万字_把整万的数改写成用万作单位的数时,将万位后面的4个0去掉,添上一个万字,中间用什么连结...

    展开全部 将万位后面的4个0去掉,添上一个万字,中间不需要用什么连接这个62616964757a686964616fe58685e5aeb931333431363534数. 万:代表的是10的4次方( ...

  10. js的数据类型--数字

    近期做一些项目的时候发现,自己的js基础还是不够扎实,再看一遍犀牛书,加深自己的理解和印象.所以从这篇文章开始,后面都是关于原生js的一些内容. 这篇文章,我们具体介绍一下js的数据类型其中一种. j ...

最新文章

  1. 元素节点、属性节点、文本节点 的节点属性
  2. 小型云台用的是什么电机_盘一下目前国内主流的电动汽车都用什么电机
  3. OAM v1alpha2 新版:平衡标准与可扩展性
  4. 学web前端开发有前途吗
  5. 使用Spring Integration聚合异步结果
  6. 博弈论(2)DP/记忆化搜索
  7. 【挨踢人物传】tao61:做一个许三多式的IT攻城狮(第2期)
  8. 使用C++实现二叉搜索树的数据结构
  9. 如何测试网站服务器mysql数据库连接,如何测试网站服务器mysql数据库
  10. chrome 中的console 下无法使用jquery选择器
  11. 图解设计模式-Flyweight模式
  12. 期刊论文公式编号、居中技巧
  13. 农历阳历转换 java_Java编程实例:Java版农历和阳历转换源码
  14. Codeforces Round #459 (Div. 1) B. MADMAX(博弈+DP+记忆化搜索)
  15. 笔记本双显卡,NVIDA驱动,Manjaro 双屏
  16. 设计师都在看的全球设计网站,你居然还不知道!
  17. Golang iota踩坑
  18. Adam优化算法中的指数移动平均
  19. 【转】互联网产品经理常用软件及工作平台
  20. AES 解密报错:Given final block not properly padded. Such issues can arise if a bad key is used dur

热门文章

  1. 给创业者们推荐一个好的工具
  2. 感恩节,Google 翻译给大家送礼物啦!
  3. python语言命名规则的是()_python语言命名规则是什么?
  4. *第二周*数据结构实践项目一【交换】
  5. RESTful风格编程
  6. 廖雪峰Java2面向对象编程-5包和classpath-4classpath和jar
  7. for each in for in for of
  8. KEYCODE_DPAD_CENTER 和 KEYCODE_ENTER
  9. [HDOJ5734]Acperience(数学,公式推导)
  10. LA 4794 状态DP+子集枚举