函数
函数的含义:函数的基本单元,是完成特定任务的代码语句块
函数分类:系统函数、自定义函数
常用系统函数:
parseInt ("字符串")
:将字符串转换为整型数字 ,如: parseInt ("86")将字符串“86“转换为整型值86
parseFloat("字符串")
:将字符串转换为浮点型数字,如: parseFloat("34.45")将字符串“34.45“转换为浮点值34.45
isNaN()
:用于检查其参数是否是非数字
var num = "512";
console.log(isNaN(num))
自定义函数
无参函数定义:
function 函数名( ) {
//JavaScript语句;
}
函数调用:事件名="函数名( )" ;
代参函数定义:
function 函数名(参数1,参数2) {
//JavaScript语句;
}
函数调用:事件名="函数名( 参数1,参数2 )" ;
函数调用
function fn(){
for (var i = 0; i < 5; i++) {
document.write("欢迎学习javascript</br>")
};
}
第一种执行方法:
<button onclick="fn()">点击触发</button>
第二种执行方法:
function fn(){
for (var i = 0; i < 5; i++) {
document.write("欢迎学习javascript</br>")
};
}
fn()
全局变量
:在函数外声明的变量,网页上的所有脚本和函数都能访问它,全局变量在页面关闭后被删除
局部变量
:在函数内部声明的变量(必须使用var),只能在函数内部访问它,局部变量在函数运行以后被删除(可以在不同的函数中使用名称相同的局部变量)
返回值
:函数通过return将值返回调用它的地方,使用 return 时,函数会停止执行,并返回指定的值
闭包
:闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
如何在外部读取局部变量
:在函数的内部,再定义一个函数,函数2被包括在1内部,1内部的所有局部变量,对2都是可见的,JS特有的"链式作用域"结构(父对象的所有变量,对子对象都是可见的,反之则不成立),把内部函数作为返回值。
闭包优点
:外部函数可以访问到内部函数的变量,变量会一直存储到内存当中
闭包缺点
:闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露,闭包会在父函数外部,改变父函数内部变量的值
什么是作用域
:作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期
变量的作用域有两种:全局作用域,局部作用域
全局作用域
:最外层函数和在最外层函数外面定义的变量拥有全局作用域;所有末定义直接赋值的变量自动声明为拥有全局作用域;所有window对象的属性拥有全局作用域。
局部作用域
:和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到