一 变量不可变性
var srt = '李白';//内存中开辟了一个空间 并把变量名指向这个空间地址 str = '杜甫';//重新赋值后执行了以下动作
1 在内存中新开辟了一个新空间 存放杜甫 2 把str执行了新开辟的内存 3 但是 李白 的内存空间并没有删除销毁

二 包装类型
1 通过 new 创建的都是 复杂数据类型
2 复杂数据类型才有属性和方法
3 可是 字符串为什么会有 length属性呢?
答案就是:JS对它做了包装
包装类型:JS把简单数据类型 包装成 复杂数据类型
代码执行流程
var str = '李白'; //声明变量str var temp = new String('andy'); //1 生成临时变量 把简单的包装成复杂的 str = temp; //2 复制给我们声明的字符变量 temp = null; //3 销毁临时变量