如题目所示,
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本身。