代码改变世界

JavaScript学习笔记一

2010-02-11 14:22  爱研究源码的javaer  阅读(210)  评论(0编辑  收藏  举报

substr(start,length)方法

用法:可在字符串中抽取从start下标开始的指定数目的字符.

参数:

start 必需: 要抽取的子串的起始下标.必需是数值如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

length:

可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾

 

注释:substr() 的参数指定的是子串的开始位置长度,因此它可以替代 substring() 和 splice() 来使用。

实用:判断一个字符串是否全是数字,下面方法就很好的采用了substr() 方法,用substr(i,1)对该字符串中的字符一个一个的进行判断。 

重要事项:ECMAscript 没有对该方法进行标准化,因此反对使用它。

重要事项:在 IE 4 中,参数 start 的值无效。在这个 BUG 中,start 规定的是第 0 个字符的位置。在之后的版本中,此 BUG 已被修正。

 

substring() 提取字符串中两个指定的索引号之间的字符.

重要事项:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。

都是从索引0开始.

 

charAt() 方法可返回指定位置的字符。

注释:字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。

charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。

 

注释:字符串中第一个字符的下标是 0。如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。

 

 

parseFloat() 函数可解析一个字符串,并返回一个浮点数。

 

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

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

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

提示:如果只想解析数字的整数部分,请使用 parseInt() 方法。

<script type="text/javascript">

document.write(parseFloat("10"))
document.write(parseFloat("10.00"))
document.write(parseFloat("10.33"))
document.write(parseFloat("34 45 66"))
document.write(parseFloat(" 60 "))
document.write(parseFloat("40 years"))
document.write(parseFloat("He was 40"))

</script>

 

输出:

10
10
10.33
34
60
40
NaN

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

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