当前位置: 首页 / 网站建设 / 正文

js的全局变量和局部变量是什么?怎么定义?为什么赋值不生效

发布时间:2020-04-11 02:19:20 作者:小超越君

在编程学习中,变量赋值是基础,是编程的核心,我们必须要好好掌握,其中变量分为全局变量和局部变量,顾名思义,全局变量就是无乱在任何地方都可以直接调用的,局部变量只能在功能函数里使用,下面小超越就来为大家详细讲解一下。

全局变量:在整个程序中都可以使用的变量
局部变量:只能在函数中使用的变量

在js中全局变量分为显示声明和隐式声明

第一种声明方式:使用var关键字+变量名在函数外部声明就是全局变量,例如:

1
var bianliang = "全局变量";

第二种声明方式:没有使用var关键字声明,直接给变量名赋值,不管是在函数内部还是外部都是全局变量,例如:

1
2
3
4
5
6
7
8
9
10
text = "全局变量";
function bl(){
    text1 = "我也是全局变量";
    var text2 = "我是局部变量";
    document.write(text2);//局部变量只能在函数中使用
}
bl()
document.write(text+"<br>");
document.write(text1+"<br>");
//document.write(text2);//这个会报错

第三种声明方式: 使用window全局对象来声明,全局对象的属性对应也是全局变量,例如:

1
2
3
4
5
6
7
8
9
10
window.test3 = 'window全局对象声明全局变量';
document.write(test3);//window全局对象声明全局变量
在js函数中局部变量优先于全局变量,例如:

var text4 = 5;
function bl2(){
    var text4 = 45;
    document.write(text4);//这里输出的是45
}
bl2()

由于js是从上往下依次运行的,所以在函数中调用局部变量需要写在声明局部变量的下方,如果调用局部变量写在声明局部变量的上方就是undefined:例如

1
2
3
4
5
function bl3(){
    console.log(text5);//输出为undefined
    var text5 = 10;
}
bl3()

需要记住的是:

        1.函数中局部变量优先全局变量。

        2.在函数中没有 var 声明的变量是全局变量。

        3.局部变量只能在函数内使用,函数外不可使用。

知识在于传播与沉淀,转载请保留本文链接:https://www.zhe94.com/669.html

小超越
热爱折腾,曾想着改变世界,如今只能向生活低头,寻找可口的牛奶和面包
添加站长微信作者头像
专注高品质湛江网站建设及湛江SEO优化服务 立即咨询