为了账号安全,请及时绑定邮箱和手机立即绑定

关于全局变量

关于全局变量

翻过高山走不出你 2019-03-07 14:08:35
全局变量是不是没有加var,就是全局变量?还是说,如果在上层只要找到了定义过的同名变量,就不成为全局变量了?小白理解的不透彻,请大佬帮忙解答一下function a(){    function b(){        var aaa = 2;        function c(){            aaa = 5;        }        }}请问这个最内层的aaa = 5 aaa 没加var 是不是就马上成为了全局变量 , 还是说他的父函数声明了, 就不是全局变量了?
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

我给你举一个例子吧,例如在一个 script 标签里,或者是一个 js 文件中。



var a_1 = 6 // 这样的,直接在最外层声明的变量,是全局变量


(function fn_1 () {

    var a_2 = 7 // 在函数内层声明的变量,是属于这个函数的局部变量

    a_3 = 8 // 如果在函数作用域内没有用 var 关键字声明的变量,会被自动声明为全局变量

}())


// 上面这段代码中,a_1 和 a_3 是全局变量,a_2 是局部变量

还有一种情况是严格模式


// 文件开头这样写,会进入严格模式

'use strict'


var a_1 = 6 

(function fn_1 () {

    var a_2 = 7 

    a_3 = 8 // 同样的代码,在严格模式下这样声明变量会报错,a_3 is not defined

}())

推荐去看一下 《js高级程序设计》,里面讲的很详细


查看完整回答
反对 回复 2019-03-17
  • 1 回答
  • 0 关注
  • 407 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号