1、如果尝试读一个未声明的变量的值,js会生成一个错误。如果尝试给一个未用var声明的变量赋值,
js会隐式声明该变量。但是要注意,隐式声明的变量总是被创建为全局变量,即使该变量只在一个函数体内使用,要防止这样的情况发生最好用var。
2、
/**基本数据类型
* String Number Boolean Null Undefined
*
* 引用数据类型
* Object
*
* Js中的变量都是保存在栈内中的,
* 基本数据类型的值直接在栈内存中存储
* 值与值之间是独立存在的,修改一个变量不会影响到其他的变量
*对象是保存在堆内存中的
* 栈中保存的是变量名和对象的地址
* 赋值时是把地址赋值过去,所以地址中的对象改变了也会跟着变的
*
*/
var a=123;
var b=a;
a++;
console.log("a="+a);
console.log("b="+b);
var obj=new Object();
obj.name="孙悟空";
var obj2=obj;
obj.name="猪八戒"
console.log(obj.name);
console.log(obj2.name);```