美文网首页
js 全局变量与私有变量

js 全局变量与私有变量

作者: 路上灵魂的自由者 | 来源:发表于2019-01-17 18:01 被阅读19次

/*

    * 变量提升:

    * var a; var b; var c;

    * fn = XXX

*/

var a = 12,b = 13,c = 14;

function fn(a){

    /*

        * 形参赋值

        * a = 12;

        *

        * 变量提升

         *  var b;

         *

        * => 在私有作用域中,只有以下两种情况式私有变量

         *  A: 声明过的变量(带VAR/function)

         *  B: 形参也是私有变量

        *

         * 剩下的都不是自己的私有变量,都需要基于作用域链向上查找

    */

    console.log(a,b,c)  // 12 undefined 14(c是全局的)

    var b = c = a = 20;

    console.log(a,b,c) // 20 20 20

}

fn(a)  // ->把FN执行(小括号中式实参:值) =》执行FN把全局变量A的值12当作实参传递给函数的形参 =》fn(12)

console.log(a,b,c)    // 12 13  20


面试题:

var ary = [12,23];  // 全局变量

function fn(ary){

    console.log(ary)  //[12,23]

    /*

        * 形参赋值

         * ary = [12,23]  //私有变量

    */

    ary[0] = 100; // [100,23]

    ary = [100]; // [100]

    ary[0] = 0; // [0]

    console.log(ary) //[0]

}

fn(ary)   //传的是实参:(值:对于值类型来说是:值;对于引用地址来说是:引用地址)

console.log(ary)  //[100,23]

相关文章

  • js 全局变量与私有变量

    /* * 变量提升: * var a; var b; var c; * fn = XXX */ var a = 1...

  • JS 闭包(Closure)

    JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。 简单点说闭包就是JS中用来实现私有变量...

  • 关于私有作用域的预解释

    如何区分私有变量还是全局变量: 在全局作用域下,预解释的时候,声明的变量是全局变量。 在"私有作用域中声明的变量"...

  • 浅谈js的作用域

    1、如何区分私有变量和全局变量 (1).在全局作用域下声明(预解释的时候)的变量是全局变量;(2).在私有作用域中...

  • 作用域链

    -如何区分私有变量和全局变量: 1.在全局作用域下声明(预解释的时候)的变量是全局变量2.在私有作用域中声明的变量...

  • JavaScript函数闭包

    JavaScript闭包 JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。 全局变量1....

  • uniapp实现全局变量

    1.引入外部js文件引入全局常量-组件引用全局变量 2.main.js入口文件挂载全局变量-this引用全局变量m...

  • 小程序全局变量

    在app.js里面定义全局变量 在要用到全局变量的某个js文件中

  • 微信小程序全局常量,全局js文件使用

    方法一:app.js 内设置全局变量(如屏宽,屏高的设置) 1、app.js文件 定义全局变量 设置全局变量 a...

  • JavaScript 闭包

    JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。 全局变量 函数可以访问由函数内部定义的...

网友评论

      本文标题:js 全局变量与私有变量

      本文链接:https://www.haomeiwen.com/subject/kotwdqtx.html