什么是函数
概念:函数是封装一些具有特定功能的代码块。 函数不会自己执行 需要去调用才能执行
为什么要使用函数
function(){} : 减少我们编码的工作量。
函数分类
系统函数/库函数/内置函数
alert() parseInt() Number() … 属于内置对象的行为。
自定义函数
根据我们自己的需求去自己封装一些具有特定功能的代码块
函数返回值
返回值就是 函数执行完毕之后返回的结果 return 需要返回的结果;
函数执行完毕后把结果赋值给别的变量 可以接着使用
立即执行函数
不需要调用,立马能够自己执行的函数
<script>
// 立即执行函数
// 作用:创建一个独立作用域,避免命名冲突
// 写法1
(function(a, b) {
console.log(a + b);
})(1, 2); //后面的括号相当于调用 可以进行传递参数
// 写法2
(function() {
console.log(1);
}())
//eval() 函数计算内部的表达式
</script>
全局作用域&局部作用域
作用域就是变量起作用的区域,生效的范围。
作用域分为全局作用域和局部(函数)作用域
全局作用域:在整个Script标签里面 都可以起作用的叫做全局作用域
局部作用域 :只在{}或者函数内部起作用
全局变量:在整个Script标签内部都可以访问到的变量是全局变量
局部变量:只在函数体内能访问到的叫局部变量
变量提升
就是会在当前作用域把变量声明提升到顶点
函数内的变量不加var的时候,执行完该函数后,会自动提升作用域,提升为全局作用域。
原型链(作用域链)
就是在使用变量时候现在自己的作用域下查找如果没有就逐级向上查找 直到找到Window 如果没有 就返回 is not defined 这个过程就叫作用域链