1 <script > 2 //*Q:在JS调用函数传递的参数时,到底是值传递还是引用传递 3 //*A:理解一:都是值(基本/地址值)传递 4 // 理解二:可能是值传递,也可能是引用传递(地址值) 5 //*Q:JS引擎如何管理内存? 6 //*A:分配一块小内存,得到他的使用权 7 // 存储数据,可以反复进行操作 8 // 释放小内存空间 9 //小知识点:释放内存 10 // 局部变量:函数执行完自动释放 11 // 对象:成为垃圾对象==>垃圾回收器回收 12 var a=3//这里的a是一个变量(全局变量) 13 function fn (a) {//这里的a是另一个变量(局部变量),这里有一步:a=a(前面的是局部变量后面的是全局变量) 14 a=a+3//左边是写右边是读,这里的a是一个垃圾数据,没有被引用,所以输出的是3 15 } 16 fn(a)//这里操作的a是3 17 console.log(a)//输出的是3 18 19 function fn2 (obj) { 20 console.log(obj.name) 21 } 22 var obj={name:‘Tom‘} 23 fn2(obj) 24 25 var a=3//这里a=3占用一个内存空间 26 var obj={}//这里obj占用一个内存空间,{}占用一个内存空间 27 objj=null//这里释放了对象的空间,而obj空间没有被释放 28 29 function fn3 () { 30 var b={}//局部变量执行到这里的时候没又将b的值放到内存中,要执行到fn的才将b的值放到内存中,函数执行完就会释放 31 } 32 fn()//这里b被释放,b指向的对象被垃圾回收器回收 33 </script>
原文地址:https://www.cnblogs.com/junxiaobai/p/10333509.html
时间: 2024-10-29 11:07:52