value的值是什么格式?

 <input id="wb" name="wb" type="text" >
var j=document.getElementById("wb").value;
            clearall();
            var hobby = document.getElementsByName("hobby");
            if(parseInt(j)<0||parseInt(j)>6)
            {
              alert("请重新输入1-6的整数");
            }
            else{
              hobby[j-1].checked="checked";

这句

if(parseInt(j)<0||parseInt(j)>6)

把j的值转换成int来比较大小,但是为什么下面这句

hobby[j-1].checked="checked";
直接用j-1,难道数组(getElementsByName算数组吧)里的编号不需要用数字格式吗?
刘毅毅
浏览 1678回答 3
3回答

千秋此意

是因为减法运算会进行隐式转换,value的值(j)本身是字符串类型,直接用 j - 1 会先把 j 隐式转换成 数字类型 再进行减法运算,相当于 Number(j) - 1

程序猴jason

你可以用typeof查看类型,value的值的类型是string,如果是+不会进行隐式转换,但减法(-),除法(、),乘法(*)都会进行隐式转换,因为+号可以做加法,也可以当拼接用!!!

Jeson_Wei

js是弱类型语言,做减法会将变量或常量自动转型
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript