猿问

关于全局变量

全局变量是不是没有加var,就是全局变量?


还是说,如果在上层只要找到了定义过的同名变量,就不成为全局变量了?


小白理解的不透彻,请大佬帮忙解答一下


function a(){

    function b(){

        var aaa = 2;

        function c(){

            aaa = 5;

        }

    

    }


}

请问这个最内层的aaa = 5 aaa 没加var 是不是就马上成为了全局变量 , 还是说他的父函数声明了, 就不是全局变量了?


翻过高山走不出你
浏览 408回答 1
1回答

胡子哥哥

我给你举一个例子吧,例如在一个 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高级程序设计》,里面讲的很详细
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答