var a=12;
/*
1.先声明一个变量a 没有赋值(默认是undefined)
2.在当前作用域中开辟一个位置存储12 这个值
3. 让变量a和12关联在一起(定义:赋值)
*/
var b=a;
b=13;
console.log(a);//12
var ary1=[12,23];
var ary2=ary1;
ary2.push(100);
console.log(ary1);//12 23 100
任意数求和
function sum () {
var total =null;
for(var i=0;i<arguments.length;i++){
var item=arguments[i];
item=parseFloat(item);
!isNaN(item)?total+=item:null;
}
return total;
}
console.log(sum(12, 23, '34', 'AA'));
栈内存:作用域 1.提供一个供JS 代码自上而下执行的环境(代码都是在栈内存中执行的) 2.由于基本数据类型值比较简单,他们都是直接在栈内存中开辟一个位置,把值直接存储进去的 ==>当栈内存被销毁,存储的那些基本值也就跟着销毁了。 堆内存:引用值对应的空间 1.存储引用类型值得(对象:键值对 函数:代码字符串) => 当前堆内存释放销毁,那么这个引用值彻底没了 =>堆内存的释放:当堆内存没有被任何的变量或者其它东西所占用,浏览器会在空闲的时候,自主的进行内存回收,把所有 不被占用的堆内存销毁掉(谷歌浏览器) xxx=null; 通过空对象指针null 可以让原始变量(或者其它东西)谁都不指向 那么原有被占用的堆内存就没有被东西占用了,浏览器会销毁它。