<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>简单数据类型和复杂数据类型</title>
</head>
<script>
// 数据类型和内存分配 string number null undefined boolean都属于基本数据类型 也叫值类型
var timer = null;
console.log(typeof (timer));//object类型 当时设计人员没有想好,类型应该是null的
// 引用类型 复杂数据类型 仅仅在栈里存地址,然后指向堆里找值 如new Object/Array/Date
// 简单数据类型的传参 形参实参互不影响 a在函数中输出就是11
function fn1(a) {
a++;
console.log(a);
}
var x = 10;
fn1(x);
console.log(x); //实参x依旧是不变的10
// 复杂数组类型的传参 由于涉及到地址,所以形参实参分别在客栈开辟自己的空间,但是地址却是相同的,所以指向的值也是相同的
function Person(name) {
this.name = name;
}
function fn2(b) { // b=p 地址的传递 b——>'0xxafaff'——>'LBw'
console.log(b.name);
b.name = "PDD";
console.log(b.name);
}
var p = new Person('LBW'); //p——>'0xxafaff'——>'LBw'
fn2(p);
console.log(p.name);
</script>
<body>
</body>
</html>