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

为什么一定要新建一个变量储存?

为什么字符串的改大小写的方法不能像日期的设置日期方法一样直接更改原来的赋值,而是要新建一个变量储存它,再调用这个变量呢? 比如:

这里输出的message就还是用的初始值。 而前面讲setDate方法输出时就变成了更改后的值?

正在回答

5 回答

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>string对象 </title>
  <script type="text/javascript">
    var message="I love JavaScript!";
    message=message.toUpperCase();
    document.write("字符串为:"+message+"<br>");
</script>
</head>
<body>
</body>
</html>

是可以的

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

同学,你赋予个message的是大写的字符串,而你又用 toUpperCase()  这个表示大写的无参方法,结果怎么会改变呢。。。。  你应该用  toLowerCase()  才对

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

var str = "hello";

str = str + " world";

此时,str = "heello world";

但并不是在原有 hello 的基本上加上一个 world ,

而是先拼接出来一个 hello world ,然后删掉了 hello ,重新赋予 str hello world 的值。

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

懵逼的我 提问者

谢谢你的耐心解答! 要在知道结论的基础上慢慢想原理才能慢慢想通
2016-10-28 回复 有任何疑惑可以回复我~

我在某本书上看到过,原话忘记了,大概意思是这样的:String 类型一旦建立就是不可改变的;改变 String 类型的值,实际上是删除了原值,然后赋予新值。

就这个问题来看,既然赋予了变量 message 一个字符串值,那么这个值就应该是不可变的;既然要变,就只能删掉原值,赋予新值,所以,你琢磨出来的结论,根本不能改变原来的值,是对的,我很佩服你啊!

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

琢磨明白了。不是不能直接用。只是根本不能改变原来的值

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

举报

0/150
提交
取消

为什么一定要新建一个变量储存?

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