关于全局变量题目记录

<script>
    //  分析下列代码打印结果
    let num = 1
    console.log(num)  //1
    function fn(a) {
      console.log(num)  //3
      num = 2 //未声明而变成了全局变量,直接修改了外部num的值
      console.log(num)  //2
    }
    num = 3
    console.log(num)  //3
    fn(num)
    console.log(num)  //2
  </script>

总结:

1,函数中的参数一定要声明,如果不声明而直接使用,它就会变成全局变量。在函数内部全局变量,在以后调试时,非常难以查找,大量的全局变量还会造成全局变量污染,后面变量名要非常小心,否则和前面的相同就会引用前面的,调试更加困难。 还有在函数运行完之后,全局变量也不会销毁,占用内存。

2,声明之后,它就变成了局部变量,只在该函数内有效,后面的变量命名,你可以随便,和它没有任何并系。而且函数运行完之后,它就会销毁,不占用内存。

3,如果函数带有参数,参数不用再声明,当你写参数时,就是声明变量。

函数表达式和普通函数的区别:

        普通函数会在js中提前创建,但函数表达式不会,函数表达式只会创建变量名,但匿名函数不会创建。也就是说,普通函数可以提前调用,但是函数表达式不可以,会报错

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值