parseInt
一直没明白“parseInt”是干什么用的?以前也没学到吧!
还有“sum+=parseInt(d[i].substr(3,2));”为什么是“sum+=…”代表什么呢?
一直没明白“parseInt”是干什么用的?以前也没学到吧!
还有“sum+=parseInt(d[i].substr(3,2));”为什么是“sum+=…”代表什么呢?
2014-11-13
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
<!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>
<!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);这样进行单个测试的时候是可以取出数值的。求大神解答
<!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()+"日"+" "+"星期"+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啊?不该是成绩的总和吗?
举报