var a="xx";a=a+"ss";a的值变了,但"xx"字符串并没有变

时间:2022-04-27
本文章向大家介绍var a="xx";a=a+"ss";a的值变了,但"xx"字符串并没有变,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

如题目所示,

var a="xx";
a=a+"ss";
console.log(a); //xxss

一般情况下,我们就可以认为此时a的值,由'xx'变成了'xxss'。变量的值可以改变,但ECMAScript中的字符串却是不可以改变的,这一点也许不是每一个同学都清楚。

简单的说,每当你定义了一个变量,就是在内存中开辟了一块区域,它里面的内容是可变的。而'xx',这是一个字符串常量,它是不可以改变的。

JavaScript明确说明了原始值(null,undefined,数值,布尔值,字符串)是不可改变的,就是说字符串本身是不可以改变的。

啥叫改变字符串本身呢?

伪代码:

'xx' = 'ss';

这就是要改变字符串本身,这样的赋值操作至少在js中是无法实现的。

那么我们在改变上面的变量a的值的时候,到底发生了什么呢?

看图,

可能有同学觉得这种知识点没啥用?我觉得肯定会有人这么想,觉得这东西又不能用来写功能什么的。

我自问自答吧,什么叫学JS呢?这就是学JS,学习JS本身。