变量的两种类型
根本类型: undefined、Null、Boolean、Number、String五种 (简略的数据段);
援用类型: object (由多个值形成),也就是咱们说的"对象"
从复制后果看两种变量的个性
根本类型变量的复制 : 将前一变量赋值给后一变量时,只是将前一个变量的值赋给后一个变量,之后两个变量从新赋值互不影响,如下:
var a=3var b=a b=4console.log(a)//b的从新赋值不影响a,此时a还是原值3
援用类型变量的复制 : 将前一变量赋值给后一变量时,是将前一个变量的指针给后一个变量,两个变量用的是同一个指针,指向的是同一个地址,是同一个值。无论哪个变量扭转这同一个值,另一变量的指针的值跟着扭转,两个变量从新赋值相互影响,如下:
var a={d:3}var b=a b.d=4console.log(a.d)//给b.d从新赋值为4,因a.d指针也指响这个地址,所以a.d的值也是4
由上可知:根本类型变量复制的是变量的正本,而援用类型变量复制的是指针
变量的定义(宣告)和赋值
函数中形参和局部变量同名
ps: 在咱们本人写代码中,个别不会做这样的蠢事。
js对形参在变量对象中是如何保留的呢,请看标准: