为了账号安全,请及时绑定邮箱和手机立即绑定

parseInt

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

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

正在回答

15 回答

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


17 回复 有任何疑惑可以回复我~
#1

青春迷宫 提问者

非常感谢!
2015-09-25 回复 有任何疑惑可以回复我~
#2

wmsj

学习学习
2015-11-05 回复 有任何疑惑可以回复我~
#3

暮女神

这人从W3school抄的,看不懂他的排版的别被误导了 http://www.w3school.com.cn/jsref/jsref_parseInt.asp 这是官方解释
2016-12-16 回复 有任何疑惑可以回复我~
#4

慕用9345534 回复 暮女神

请问最后一个为什么是10和8啊?string以0开头不是八进制和十六进制吗?应该是8和16啊
2016-12-21 回复 有任何疑惑可以回复我~
查看1条回复
<!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>


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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


1 回复 有任何疑惑可以回复我~
#1

牧牛娃

给大家简单普及一下parseInt()方法的意义和用途: parseInt("字符串",基数):用基数解析一个字符串,并返回一个十进制的整数. 这里的基数的意思就是将字符串当做几进制的意思. 举例: 1.parseInt("12",5),意为将"12"作为五进制数字来解析,逢5进1,解析之后得到的数就是7. (注意:解析后返回的值是十进制) 2.parseInt("12",8),意为将"12"作为八进制数字来解析,逢8进1,解析之后得到的数就是10. 3.parseInt("12",10),意为将"12"作为十进制数字来解析,逢10进1,解析之后得到的数就是12. 这么说,你们懂了吧
2019-11-17 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

你的源码中

28行:parseInt

33行:parselnt

看看是否是字母打错了?

0 回复 有任何疑惑可以回复我~
<!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);这样进行单个测试的时候是可以取出数值的。求大神解答


0 回复 有任何疑惑可以回复我~
#1

qq_sonic小怪瘦_0

var sccore=parselnt(arr[i].substring(3,5));,多打了一个c,是score,不是sccore
2016-03-23 回复 有任何疑惑可以回复我~
#2

monitor_jone 回复 qq_sonic小怪瘦_0

谢谢 ,太不细心了。
2016-03-23 回复 有任何疑惑可以回复我~
#3

慕村1994845

代码33行: var sccore=parselnt(arr[i].substring(3,5)); parseInt写成了parselnt;是大写的“I”,不是小写的“L”
2016-10-18 回复 有任何疑惑可以回复我~

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

乘法/赋值(*=)

除法/赋值(/=)

取模/赋值(%=)

加法/赋值(+=)

减法/赋值(-=)

左移/赋值(<<=)

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

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

1 回复 有任何疑惑可以回复我~

<!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啊?不该是成绩的总和吗?

0 回复 有任何疑惑可以回复我~
#1

墨月千楼

少了个加号
2015-12-10 回复 有任何疑惑可以回复我~
#2

25N

sum += parseInt(arr[i].substr(index+1,2)); 你输出的是最后一个数的值
2016-08-04 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
首页上一页12下一页尾页

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468061    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程
意见反馈 帮助中心 APP下载
官方微信