问答详情
源自:7-23 编程练习

parseInt

一直没明白“parseInt”是干什么用的?以前也没学到吧!

还有“sum+=parseInt(d[i].substr(3,2));”为什么是“sum+=…”代表什么呢?

提问者:青春迷宫 2014-11-13 22:15

个回答

  • 温暖的骨头
    2014-11-14 09:30:43
    已采纳

    sum+=x; 等价于sum=sum+x.


    定义和用法

    parseInt() 函数可解析一个字符串,并返回一个整数。

    语法

    parseInt(string, radix)

    参数

    描述

    string    必需。要被解析的字符串。    

    radix    

    可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

    如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。

    如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

       

    返回值

    返回解析后的数字。

    说明

    当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

    举例,如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

    提示和注释

    注释:只有字符串中的第一个数字会被返回。

    注释:开头和结尾的空格是允许的。

    提示:如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。

    实例

    在本例中,我们将使用 parseInt() 来解析不同的字符串:

    parseInt("10"); //返回 10
    parseInt("19",10); //返回 19 (10+9)
    parseInt("11",2); //返回 3 (2+1)
    parseInt("17",8); //返回 15 (8+7)
    parseInt("1f",16); //返回 31 (16+15)
    parseInt("010"); //未定:返回 10 或 8


  • 莫子轩
    2018-02-15 13:31:25

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title>阶段7任务练习</title>
    </head>
    <body>
    
    <script type="text/javascript">
     //通过javascript的日期对象来得到当前的日期,并输出。
     var mydate=new Date();
     //输出今天是星期几
     var weekday=['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];//定义日期数组
     var mynum=mydate.getDay();//返回0-6
        //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
     var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
     var score=scoreStr.split(";");
     var sum=0;
     var average=0;
     for(var i=0;i<score.length;i++){
            sum+=parseInt(score[i].substr(3,2));
     }
        average=Math.round(sum/score.length);
     //从数组中将成绩撮出来,然后求和取整,并输出。
     document.write(mydate.getFullYear()+"年"+mydate.getMonth()+"月"+mydate.getDay()+"日"+weekday[mynum]+"<br/>班级总分为:"+sum+"<br/>平均分为:"+average+"<br/>");
    </script>
    </body>
    </html>


  • 慕勒7915654
    2016-05-30 10:27:40

    你有两个错误:1.parseInt的写法错误(33行)  2.score而不是sccore(33行)

  • 133210
    2016-04-23 20:36:34

    这个几进制几进制的方法看不懂啊


  • mhj110
    2016-03-22 17:08:56

    var index=    定义变量 是不能用关键字的吧

  • MoocChenWei
    2016-03-14 22:26:48

    你的源码中

    28行:parseInt

    33行:parselnt

    看看是否是字母打错了?

  • monitor_jone
    2016-03-13 16:42:01

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript">
    
      //通过javascript的日期对象来得到当前的日期,并输出。
      var mydate=new Date();
      //设置星期数组
      var da=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
      //分别获取年份和日期,使用getFullYear    getMonth   getDate 方法分别获取当前的年份 月份  日期  然后输出在屏幕上  
      document.write(mydate.getFullYear()+"年"+(parseInt(mydate.getMonth())+1)+"月"+mydate.getDate()+"日"+"  "+da[mydate.getDay()]);
    
      //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
      var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
      //分割字符串,并将字符串存入数组中。这样用分割符得到的数据类型自动没数组型
      var arr=scoreStr.split(";");
      //打印测试
      var sum=0;
      //第一种方法
      /*for(var i=0; i<arr.length;i++){
    	  var index=arr[i].indexOf(":");
    	  sum+=parseInt(arr[i].substr(index+1,2))
    	  }*/
    	//第二种方法
    	for(var i=0;i<arr.length;i++){
    		  //现在开始把数组中的分数提取出来
    		var sccore=parselnt(arr[i].substring(3,5));
    		//从数组中将成绩撮出来,然后求和
    		sum+=score;
    		}
      document.write(sum);
    </script>
    </head>
    
    <body>
    </body>
    </html>

    最后为什么输出不了值出来,但是我

    var sccore=parselnt(arr[i].substring(3,5));

    document.write(score);这样进行单个测试的时候是可以取出数值的。求大神解答


  • 烜烜
    2016-03-11 16:02:33

    每种主要的算术运算以及其他几个运算都有复合赋值运算符:

    乘法/赋值(*=)

    除法/赋值(/=)

    取模/赋值(%=)

    加法/赋值(+=)

    减法/赋值(-=)

    左移/赋值(<<=)

    有符号右移/赋值(>>=)

    无符号右移/赋值(>>>=)

  • 布布橙然
    2015-09-21 18:01:17

    <!DOCTYPE  HTML>

    <html >

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>系好安全带,准备启航</title>


    <script type="text/javascript">

    var mydate=new Date();

    var week=new Array("天","一","二","三","四","五","六");

    document.write(

        mydate.getFullYear()+"年"+mydate.getMonth() +"月"+mydate.getDate()+"日"+"&nbsp"+"星期"+week[mydate.getDay()]);

        

      //通过javascript的日期对象来得到当前的日期,并输出。

      

      


      

      

      //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦

      var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

     var sum=0;

     var av= 0;

     var arr=scoreStr.split(";");

     for(var i=0; i<arr.length  ;i++){

         var index=arr[i].indexOf(":");

         sum= parseInt(arr[i].substr(index+1,2));

     }


     document.write(sum);

    输出来sum为什么等于76啊?不该是成绩的总和吗?

  • cxm2014
    2015-03-12 00:50:48

    sum+=i 表示sum=sum+i;

  • 雷慕
    2015-02-11 01:16:26

    parseInt("10");	//返回 10
    parseInt("19",10);	//返回 19 (10+9)
    parseInt("11",2);	//返回 3 (2+1)
    parseInt("17",8);	//返回 15 (8+7)
    parseInt("1f",16);	//返回 31 (16+15)
    parseInt("010");	//未定:返回 10 或 8


    这个后面的注释不知道是我的理解问题还是本身就是错误的。

    parseInt("10");	//返回 10,因为后面的参数缺失,字符串”10"的第一个字符“1”介于1~9之间,所以默认十进制
    parseInt("19",10);	//返回 19 因为第二个参数指明了是十进制
    parseInt("11",2);	//返回 3 因为第二个参数指明是二进制,在二进制中的11等于十进制的3
    parseInt("17",8);	//返回 15 八进制中的17等于十进制中的15
    parseInt("1f",16);	//返回 31 十六进制中的“1f”等于十进制的31
    parseInt("010");	//未定:返回 10 或 8


  • 小于飞飞
    2014-11-14 15:21:05

    因为成绩信息"小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76" 是字符,任务的要求是求班级平均值, 求值要是数值,所以使用 parseInt 将取到的成绩转换成数值,在进行运算。