javascript string与int型比较大小问题

字符型a与int型b比较大小时,是否要将a强制转换成int型,貌似不转可以直接比大小。
但是两个string比较的时候就要强制转成数值型了。
举例:if (v.value > parseInt(v1.innerHTML)) 一般情况下都是正常的,那么js比较大小的具体原理是什么呢,是否是其中有一个是数值型的就会默认按数值型比较?

JS是弱类型语言,变量的类型不是固定的,可以随时根据环境变化,JS运行时会自动根据当前的一些情况进行隐式转换。string类型是无法比较的,int比较肯定没有问题,但string和int比较时,这个时候就会隐式转换string为number类型,如果转换失败就返回false;再打个比方("a"+1.1),会返回"a1.1",这个时候number1.1会隐式转换为string "1.1"。
对于刚入门的人,不用考虑类型问题倒是方便,但越往后疑问会越多。我建议你,强化类型的概念,如果你确定此处是int,那养成习惯,对于来源进行显示转换成int,否则程序会有很多异常,这是一个优秀程序员最基础的概念。
比如你上面的例子:
var _a = parseInt(v.value);
var _b = parseInt(v1.innerHTML);
if(isNaN(_a) || isNaN(_b)){
//throw new Error

}else if (_a > _b){
//your code...

}
温馨提示:内容为网友见解,仅供参考
无其他回答

javascript string与int型比较大小问题
string类型是无法比较的,int比较肯定没有问题,但string和int比较时,这个时候就会隐式转换string为number类型,如果转换失败就返回false;再打个比方("a"+1.1),会返回"a1.1",这个时候number1.1会隐式转换为string "1.1"。对于刚入门的人,不用考虑类型问题倒是方便,但越往后疑问会越多。我建议...

javascript中怎么比较文本框中数字的大小
在Javascript中对象节点input.value返回值为String,你上面的写法就变为了2个String进行比较。而不是2个Int 或Float值进行比较,结果不正确。正确的是,将String 转为数字,或浮点在进行比较。Js有2个转换的,一个是parseInt 将Str转为 整型。还有一个是parseFloat 将str转为 浮点。看看你输入的数字是否...

javascript比较大小
在字符串比较中是一个字符一个字符的比较,只要不同就停止返回大小 那么10000和2 比较的是1和2,那么1肯定小于2,所以返回false 要想比较,就要转成数字型的 用parseInt()或者parseFloat()转成int类型或者float类型的进行比较才可以。改成这样 function IsTradeMoney(){ var tradeMoney=document.all("...

请问javascript中获取文本框中的时间值,怎么转换成int比较大少subStrin...
转换成int可以用 parseInt(numString, [radix])参数 numString 必选项。要转换为数字的字符串。radix 可选项。在 2 和 36 之间的表示 numString 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的...

js中string转int把String类型转化成int类型
首先给大家分享一篇 js中int和string数据类型互相转化实例 https:\/\/www.gxlcms.com\/article\/154745.htm 今天做项目的时候,碰到一个问题,需要把String类型的变量转化成int类型的。按照常规,我写了var i = Integer.parseInt("112");但控制台报错,说是“'Integer' 未定义”。后来,才知道...

在javascript中,rs.getInt(1)中,get后面跟的int或者string是根据什么决 ...
根据你查询到的数据库中的字段类型来决定的 数据库中存的是int,,就getInt 数据库中存char,varchar,text,,之类的就用getString

介绍javascript的基本数据类型
JavaScript的基本数据类型主要包括:`Number`、`String`、`Boolean`、`Null`、`Undefined`、`Symbol`、以及`BigInt`。这些类型构成了JavaScript语言的基础,允许开发者在程序中表示和操作各种数据。`Number`类型用于表示数字,包括整数和浮点数。例如,`42`是一个整数,而`3.14159`则是一个浮点数。

在javascript 中怎样把string 型转换成int型
var str1 = "1234";var str2 = "1234";number = parseInt(str1);number就是int型 str1+str2结果是"12341234"parseInt(str1)+parseInt(str2)结果就是2468

javascript数字类型?
在javascript中Boolean类型用还是比较多的一种简单数据类型,它有两个值,分别是true和false,因为在javascript中字母是区分大小写的,所以True和False不是Boolean的值。 调用Boolean()方法可以将任何类型的值转化成与之相对应的Boolean类型的值,也就是可以将其转化成true或者false。 5、Number javascript为了支持各种数值类型...

js里==和===有什么区别
1.如果比较:"1" === true 左侧为字符型,右侧为bool布尔型或int数值型,左右两侧类型不同,结果为false;2.如果比较: 1 === 1 左侧为int数值型,右侧为int数值型,左右两侧类型相同,数值大小也相同,结果为true;3.如果比较: 1 === 2 左侧为int数值型,右侧为int数值型,左右两侧类型相同...

相似回答