概述:
函数用function修饰一个代码块,这个代码块一般是抽取对应的功能代码形成对应的复用.
函数分类:
1.系统函数 属于系统的函数 (属于global对象的函数 alert() console.log()...)
2.内置函数 属于对应的内置对象的函数(Math.pow())
3.自定义函数 自己定义的函数(自己封装抽取的代码)
函数的创建(自定义的函数创建):
1.匿名创建(没有名字 不具备复用价值)
function(参数...){
对应的代码
}
2.具名函数(有名字的函数,具备复用价值)
function 函数名(参数...){
对应的代码
}
3.函数对象创建(使用new关键词)//函数对象创建的方式 里面的参数是字符串
var fn1 = new function('alert("123")')
fn1()
javaScript的程序预编译过程:
预编译过程属于编译之前做的事情 他会进行如下操作:
1.优先编译function
2.优先编译变量(不会进行赋值操作)
return 关键词
return译为返回 它是用于对应的函数中返回对应的数据的一个关键词.
当你的数据返回了那么这个函数就没有意义了,所以return后面的代码也就不执行了
return的特点
1.他会结束对应的函数,在本身这个函数的内容执行了return之后就不会再执行了
2.我们一般再程序结尾时返回对应的数据
3.也可以利用对应的return的特性来帮助我们寻找函数
return和throw new Error()的区别
1.return只是结束当前函数
2.throw new Error()是结束整个程序
gc回收机制 垃圾回收机制 (垃圾回收机制 不能强制执行的 对应的运行机制)
gc的两大回收机制
引用计数法 (针对于引用数据类型的 有变量指向当前引用就会给它+1 当这个变量不再指向它的时候就会-1 到0就回收了)
标记清除法 (针对于值类型 有用为yes 没有用为no 当显示为no的时候就会被回收)
强行机制
1.函数是在对应的方法执行栈上执行的
2.打开代码空间 拿出里面的代码进行执行
3.当你执行完以后对应的gc就会把这个内容从栈上移走 对应的代码空间会还原
arguments
概述:
arguments是函数里面所有参数的集合,他是一个伪数组(具备数组的特性有下标有lenght(长度))
使用arguments来获取对应的值的时候我们一般不屑形象
arguments使用的相关:
1.arguments通过[下标]来返回对应的元素
2.arguments的length属性表示传入参数的个数
作用域和作用域链
作用域:
一个变量的作用范围称为作用域.(在全局申明的变量就是全局变量,在局部申明的变量就是局部变量,仅在当前函数内可用 局部作用域又被称为函数作用域)
作用域链:
作用范围内容的查找,他是链式查找 从局部到全局
函数是可以嵌套的
在函数内部可以定义函数和调用的函数 函数内部不能调用优先级比自己低的
事件驱动(利用对应的事件来调用对应的函数)
获取对应的dom元素:
var 变量 = document.getElementById('对应的标签id属性')
给对应的变量添加点击事件:
变量名.onclick = 处理函数
递归
递归属于一个对应的算法 所有的算法都是套路,递归能做到所有循环能做的事.
递归的三大要素:
1.找规律
2.找初始值 没有规律的已知条件
3.自己调用自己