JS函数

149 阅读2分钟

「这是我参与2022首次更文挑战的第16天,活动详情查看:2022首次更文挑战」。

函数可以说在JS中很常见了,一个函数单独执行一个任务,并且有自己单独的定义域。 JavaScript 使用关键字 function 定义函数。函数可以通过声明定义,也可以是一个表达式。

这个我们最常见的函数定义, 使用 onclick 激发

        function name(){
            let aa = 'name';
            function age(){
                let bb = 'age';
                return bb;
            }
            console.log( age );
            console.log( age() );
        }
        // name()

自调用函数

自调用函数有两种写法, 可以匿名,可以传参,但是在声明的时候就会自动执行一次

(function(){})()
(function(){}())

// 拆开的意思:
function X (){
}
X()

在()里面写传递的参数,和普通的一样,这里传递的一个 1 给到a

(function(a){
            console.log('我是调用我自己');
            console.log(a);
})(1)

image.png

匿名函数

顾名思义,就算没有名字的函数

setTimeout(function(){
    console.log('我是匿名函数,我被用于定时器参数传递');
},1000)
let arr = [1, 2, 3]
arr.forEach(function(item){
    console.log('我是匿名函数,我被用于回调函数参数');
})
var a = function(){ console.log('函数变量'); }
console.log(a);

image.png 这个黄色警告是谷歌插件的映射未能成功加载,不大影响,我选择忽略😁

箭头函数

箭头函数表达式的语法比普通函数表达式更简洁,像我们之前不是有在活动导航栏中改变被点击和没有被点击的属性了吗tabs.forEach((v, i)=>i===index?v.isActive=true:v.isActive=false);

() => {函数声明}

括号里面可以写多个或者一个参数,下面的例子会输出 hello world!

var a = (x) => {
    console.log(x + " world!")
}
a('hello')

箭头函数默认绑定外层this

闭包

闭包是指有权访问另一个函数作用域中的变量的函数。 作用:

  1. 可以在函数的外部访问到函数内部的局部变量。 
  2. 让这些变量始终保存在内存中,不会随着函数的结束而自动销毁。

下面two函数就是闭包,one 里面的a的私有局部变量, two 可以访问到one里面的变量, 函数外可以通过two拿到one里面的私有变量

function one() {
            var a = "aaa"; 
            function two() { 
                console.log(a); 
            }
            two();
}
one();