<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 重构方法
// pop 删除数组的最后一个元素 并返回这个元素
// function pops(arr=[]){
// var last = arr[arr.length-1]
// arr.length--
// return last
// }
// // 将元素放入数组的末尾 并返回数组新的长度
// function pushs(arr=[],item){
// arr[arr.length] = item;
// return arr.length
// }
// unshift 在数组头部添加 返回数组的新的长度
// 修改数组的下标 原数组会变化 修改数组的地址 原数组怎么就不变呢?
// arr这个形参其实是重新声明的一个变量名 虽然指向的是同一个传进去实参的地址
// 传进去的是一个指针
// 函数的参数 其实是声明了一个变量存储传来的指针
// 形参的地址改变了 但是不会影响外面实参的引用地址的指向
// 形参只是声明了一个变量 存了这个指针
// function unshift1(arr){
// let arr1 = [1,1,1,1,1]
// // arr=arr1
// // arr[0] = 1000
// return arr.length
// }
// var arr = [1,2,3,4,5]
// unshift1(arr)
// console.log(arr)
// var len = unshift1(arr)
// console.log(arr,len)
let a = {},
b = "0",
c = 0;
a[b] = "前端美食家"
a[c] = "关注公众号"
a.xxxxx = '111'
console.log(a,a[b])
</script>
</body>
</html>
函数的参数 传参进去 函数会重新声明一个变量来接收这个参数
假如传进去的是一个数组 那么传进去的就是一个指针 对于这个变量
重新赋值 并不会改变原数组
//传进去函数是一个参数 函数会声明一个变量来接收 不会改变原来的变量
// 所以传进去 引用类型的数据 修改再引用类型数据的在堆中的值 会发生改变
// 因为指向的同一个堆中的区域
function test1(arr,item){
arr = 1000
// item[0] = 1000
item = 10000
}
var arr = 20000
var item = [1,2,3,4]
test1(arr,item)
console.log( arr,item )```
函数的变量 传进去的参数 会重新声明一个容器用于装这个参数