javascript string与int型比较大小问题

字符型a与int型b比较大小时,是否要将a强制转换成int型,貌似不转可以直接比大小。但是两个string比较的时候就要强制转成数值型了。举例:if(v.value>pa... 字符型a与int型b比较大小时,是否要将a强制转换成int型,貌似不转可以直接比大小。
但是两个string比较的时候就要强制转成数值型了。
举例:if (v.value > parseInt(v1.innerHTML)) 一般情况下都是正常的,那么js比较大小的具体原理是什么呢,是否是其中有一个是数值型的就会默认按数值型比较?
展开
 我来答
wangqi0716
推荐于2018-03-19 · 超过32用户采纳过TA的回答
知道答主
回答量:76
采纳率:100%
帮助的人:62.9万
展开全部
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...

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式