分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

js 关于全局变量和局部变量的简单理解

发布时间:2023-09-06 02:27责任编辑:傅花花关键词:js

 1.简单来说在  函数里边定义的变量是局部变量,在函数外边访问不到; 全局变量是在函数外边的,在函数内外都可以被访问;

var a = 10; ???????function test() { ???????????var b = 100; ???????????console.log(a);//打印结果是10 ???????????a=100; ???????????????????} ???????test(); ???????console.log(a); //打印结果为100 ???????console.log(b);//报错 b is not defind

说明: 因为a 是全局变量所以在函数内部可以被访问且被赋值;第一次打印结果为10;

            执行函数后a的值变为100 ;

            b是局部变量;在函数外部被打印,访问不到b的值 所以报错;

2.如果局部变量和全局变量的变量名相同的情况;

 

 1 var a = 10; 2 ?3 ????????function test() { 4 ?5 ????????????console.log(a);//打印结果为undefind 6 ????????????var a = 100; 7 ????????????console.log(a);//打印结果为100 8 ?9 ????????}10 ????????11 ????????test();12 13 ????????console.log(a);//打印结果为10

说明:1.如果局部变量的变量名和全局变量名形同,在函数内部变量值全部指向局部变量;

          2.第5行结果为undefind;因为只要局部变量a被声明,a就指向局部变量,但是打印在赋值之前,结果为undefind;

            第二次打印结果在赋值之后 为100;

           要想改变全局变量a 的值,可以用window.a ;

          3.第三次打印在函数外边,所以打印全局变量a,值为10;

3.关于参数问题;参数也是局部变量;

 1 var a = 1; 2 ?3 ????????function test(a) { 4 ?5 ????????????a=100; 6 ????????????console.log(a);//打印结果为100 7 ????????????return a; ????????8 ????????} 9 ????????10 ????????test(a);11 // ???????a=test(a);12 13 ????????console.log(a);//打印结果为1

说明:函数的形参和全局变量重名;既然参数也是局部变量,那函数内部对于a的操作都指向局部变量a影响不了全局变量a,

          所以13行输出1;第5行输出100;

         浅显的理解就是参数就是引用变量的值,在函数内部进行加工,其实不改变变量的值;(这里是值类型的参数传递情况可以这么理解);

         如果是引用类型的参数传递;就会影响到全局变量的值了;(这个和数据存储有关);

     

js 关于全局变量和局部变量的简单理解

原文地址:https://www.cnblogs.com/lxzwhite/p/10187442.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved