js 变量没有声明会自动声明var全局变量
ECMAScript
中有5中简单数据类型(也称为基本数据类型): Undefined
、Null
、Boolean
、Number
和String
。还有1中复杂的数据类型————Object
,Object
本质上是由一组无序的名值对组成的。
其中Undefined
、Null
、Boolean
、Number
都属于基本类型。Object
、Array
和Function
则属于引用类型,String
有些特殊,具体的会在下面展开分析。
构造函数:带new的普通函数
基本类型:1.不可以添加属性和方法。
c="he" c.c="hello" console.log(c.c) //undefined
2.在复制变量值时,基本类型会在变量对象上创建一个新值,再复制给新变量。此后,两个变量的任何操作都不会影响到对方。
var a="a" b=a c=b b="b" console.log(a,b,c) //"a","b","a"
引用类型:可添加属性和方法,
n=new Number()
n.age="he" console.log(n.age) //"he"
引用类型在创建一个对象类型时,计算机会在内存中开辟一个空间来存放值,我们要找到这个空间,需要知道这个空间的地址,变量存放的就是这个地址,复制变量时其实就是将地址复制了一份给新变量,两个变量的值都指向存储在堆中的一个对象,也就是说,其实他们引用了同一个对象,改变其中一个变量就会影响到另一个变量。
a=new Number() a.age="he" b=a b.age //"he" b.age="hi" a.age //"hi"
原文:https://www.cnblogs.com/chargeworld/p/10390729.html