高级函数的总结

本文深入探讨了JavaScript中的基本类型与引用类型的内存分配及传递方式,解释了栈内存和堆内存的区别。同时,阐述了预解析过程、this的指向问题以及函数调用的注意事项。此外,介绍了闭包的概念及其作用,强调了闭包在内存管理和使用中的优点与潜在问题。
摘要由CSDN通过智能技术生成

1:基本类型和引用类型
基本类型= =简单类型= =number boolean undefined string…
引用类型= =复杂类型= =函数和对象
基本和引用的区别?
1:基本类型存储在栈内存里面,引用类型存储堆内存里面
2:基本类型是值的传递,引用类型是地址的传递
2:栈内存和堆内存
浏览器的内存分为2种
1:一种是栈内存,存储的基本类型,也就是基本变量
2:一种是堆内存,存储的引用类型,也就是函数和对象
3:浏览器解析js代码的顺序(预解析)
1:先看全局js代码里面是否有语句错误。
2:提前解析关键字var和function
3:从上到下,从左到右开始解析
4:this的指向问题(分析this的指向,首先要看this的环境)(指向又是代替的意思)
1:在事件函数中的this,指向事件前对象
2:在函数中的this,谁调用函数,this指向谁
3:在冒充方法中,this指向冒充方法中的对象
4:在对象中,this指向对象
5:在面向对象中,一般指向该对象,其他情况看谁在调用这个方法。
5:什么是声明和定义?
变量声明和定义是分开的
举例:
var a=100;
var a是声明
=100 是定义
函数的声明和定义是一起的是不分开。
6:函数被输出的时候带不带括号是有区别的。
function a(){

	}		
	alert(a())==>输出undefined
	
	function b(){
	
	}		
	alert(b)==>输出function(){
					}

	function b(){
		alert(124)==>先输出
	}
	alert(b())==》后输出

7:函数的注意事项:
7.1:函数名和变量名不能一样,一样报错
7.2:把函数赋值给一个变量的时候,变量在调用函数不能在函数上,在函数上面报错。
举例:
a();
var a=function(){
alert(12412)
}
7.3:档函数输出语句离形参近的时候,输出形参,离变量近的时候输出变量。
举例:离形参近
var c=2;
function a©{
alert©;//43
var c=98;
}
a(43)
举例:离变量近
var c=2;
function a©{
var c=98
alert©;//98
}
a(43)
8:闭包函数?
8.1:闭包就是能够读取其他函数内部变量的函数。
这种写法就可以获取到函数内部的局部变量,b函数就是闭包
function a(){
var n=9;
function b(){
alert(n)
}
return b;
}
var num=a();
num();
8.2:闭包的用途
闭包可以用在许多地方。
它的最大用处有两个,一个是前面提到的可以读取函数内部的 变量,
另一个就是让这些变量的值始终保持在内存中。
8.3:闭包的缺点:
使用闭包的注意点 由于闭包会使得函数中的变量都被保存在内存中,
内存消耗很大,所以不能滥用闭包,
否则会造成网页的性能问题,
在 IE 中可能导致内存泄露。
解决方法是,在退出函数之前,
将不使用的局部变量全部删除。
闭包会在父函数外部,改变父函数内部变量的值。
所以,如 果你把父函数当作对象(object)使用,
把闭包当作它的公用方法(Public Method),
把 内部变量当作它的私有属性(private value),
这时一定要小心,不要随便改变父函数内 部变量的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值