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

字符串属于数值吗?数值到底包含哪些?

同学代码里,排名第一的答案在写stringObject.substr(startPos,length)时,第九行的startPos直接用了字符串“H”,而结果页显示并没有错。但是参数说明里说了【startPos是子串的起始位置,必须是数值】,所以字符串也算数值吗?数值到底包括哪些内容?

另外,如果字符串不算数值,那么为什么结果页显示正确?

附同学代码:

<!DOCTYPE HTML>

<html>

<head>

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

<title>无标题文档</title>

<script type="text/javascript">

var mystr="Hello World!";

document.write( mystr.substr(mystr.indexOf("W"))         + "<br />");

document.write(mystr.substr("H",mystr.indexOf(" "))                    );

</script>

</head>

<body>

</body>

</html>


正在回答

4 回答

首先回答你的问题:字符串不是数值,数值就是数(number),不包括字符,也不包括字符串。

其次回答为什么你给出的代码能够显示“正确”的答案:纯属巧合。
你把 "H" 改成随便什么字符,都会显示一样的答案,不信你改成 "d" 试试看。
造成这种现象的原因,是因为 substr() 的第一个参数本该是 number 类型的,但 "H" 并不能被转换成 number 类型,所以这个 "H" 被解析成了 NaN。这个 NaN 是 number 类型的。
你可以把 substr 的参数 "H" 换成 NaN 来验证一下我这个说法。

最后解释一下其他同学说的“字符类型转成数值进行计算”的问题。C/C++ 是可以把字符变量看成整型的,但 Javascript 貌似必须显示转换才行。具体怎么转换,你可以参考这个链接的介绍:
http://www.runoob.com/js/js-type-conversion.html。

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

利木 提问者

超厉害!QAQ万分感谢!! 另外,看了链接,里面说【全局方法 Number() 可以将字符串转换为数字。】。那么【mystr.indexOf("W")就是将字符类型转换成数值】这个结论是错误的对吧?(我当时得出这个结论是因为indexOf能返回指定字符串首次出现的位置(即下标,为一个数值))
2017-01-19 回复 有任何疑惑可以回复我~
#2

慕丝8281456 回复 利木 提问者

这两个方法是不同意思。 “全局方法 Number() 可以将字符串转换为数字”指的是,"123" 是字符串,但是可以通过 Number() 将它转换成 123 这个数字; 而 mystr.indexOf("W") 其实提供的是一个查找的功能,它会去查找字符串 mystr 里面 "W" 的位置,然后将这个位置(数值)返回,这个过程跟“类型转换”没有任何关系,如果 "W" 的位置是个 "x",也会返回那个下标的。
2017-01-19 回复 有任何疑惑可以回复我~
#3

利木 提问者 回复 慕丝8281456

明白了!O(∩_∩)O谢谢
2017-01-19 回复 有任何疑惑可以回复我~

 字符串属于数据类型 ,是原始值的一种。

 数值是形容某个物体的数量。

字符串和数值是两回事,不能放在一起。 


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

不属于,数值有byte short int long double float,在有时候需要进行转换,比如将字符类型转换成数值类型进行加减法计算,尽管字符串可以运用+、-对字符串进行连接,但是它还是不属于数值。

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

利木 提问者

问题1:您说的【比如将字符类型转换成数值类型进行加减法计算】,mystr.indexOf("W")就是将字符类型转换成数值吧? 问题2:但是第九行的startPos直接用了字符串“H”,为什么结果页也是正确的呢? 谢谢解答~
2017-01-18 回复 有任何疑惑可以回复我~
#2

利木 提问者 回复 利木 提问者

第九行的startPos直接用了字符串“H”,这不算【转换类型】吧?
2017-01-18 回复 有任何疑惑可以回复我~

不属于啊,数值有byte short int long double float

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

举报

0/150
提交
取消

字符串属于数值吗?数值到底包含哪些?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信