JS函数细节作用

函数:

函数调用两种方法:

按钮调用:<button οnclick="fn()"></button>

函数名直接调用:fn()

传递函数两种方法:

按钮里传递:<button οnclick="fn(a,b)"></button>

函数名里直接传参:fn(a,b)

变量:

全局变量:在函数外声明的变量,网页上的所有脚本和函数都能访问它。

作用域:在全局中都能被访问。(所有window对象的属性拥有全局作用域,所有末定义直接赋值的变量自动声明为拥有全局作用域。

生存期:全局变量在页面关闭后被删除。

局部变量:在函数内部声明的变量(必须使用var或let或const来定义一下,如果不使用就会变成全局变量。),只能在函数内部访问它。(可以在不同的函数中使用名称相同的局部变量。)

作用域:只能在函数内部被访问。

生存期:局部变量在函数运行以后被删除(垃圾回收机制 简称 GC),变量被释放了,所以会提高性能。

作用域链:从里到外,就近原则。(先从当前寻找,如果找不到就会一层一层向上寻找,直到找到,如果一直向上寻找也找不到,就会报错。且具有就近原则,如果当前的作用域下,就存在变量,那么就优先找自己作用域下的变量。)

闭包:

闭包就是在函数的内部,再定义一个函数。

用途:可以读取函数内部的变量,让这些变量的值始终保持在内存中。

缺点:1、闭包会在父函数外部,改变父函数内部变量的值。2、闭包会使得函数中的变量都被保存在内存中,内存消耗很大。

return:函数将值返回调用它的地方(使用时,函数会停止执行,并返回指定的值后面的代码就不会执行了)。

isNaN():用于检查其参数是否是非数字,不是数字 返回true,是数字 返回false。(isNaN('123') 会把字符串123转成数字123 来进行校验 返回 false)

小练习:(分辨弹出框内的a为何值)

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // var a = 123

        // function fun() {
        //     alert("fun:" + a)
        // }
        // fun()
        // alert("外部:" + a)

        // var a = 123

        // function fun() {
        //     alert("fun:" + a)
        //     var a = 456
        // }
        // fun()
        // alert("外部:" + a)

        // var a = 123

        // function fun() {
        //     alert("fun:" + a)
        //     window.a = 456
        // }
        // fun()
        // alert("外部:" + a)

        // var a = 123

        // function fun(a) {
        //     alert("fun:" + a)
        //     a = 456
        // }
        // fun()
        // alert("外部:" + a)

        // var a = 123

        // function fun(a) {
        //     alert("fun:" + a)
        //     a = 456
        // }
        // fun(123)
        // alert("外部:" + a)
    </script>
</body>

</html>

总结:望各位大佬指正。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值