问答详情
源自:7-6 String 字符串对象

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

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

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

提问者:懵逼的我 2016-10-27 19:40

个回答

  • 慕少5122734
    2016-10-27 19:50:35
    已采纳

    <!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>

    是可以的

  • qq_轮滑到老_04284587
    2017-05-27 10:38:18

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

  • 小小小小哒
    2016-10-28 09:08:53

    var str = "hello";

    str = str + " world";

    此时,str = "heello world";

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

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

  • 小小小小哒
    2016-10-28 09:02:20

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

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

  • 懵逼的我
    2016-10-27 19:46:58

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