动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

JavaScript变量的概念和作用

07-02 12:24 955浏览
举报 T字号
  • 大字
  • 中字
  • 小字

1.变量的概念

变量即变化的量,在JS中变量是松散类型的,可以用来保存任何数据类型,在定义变量时,用var操作符,后面跟变量名。

var name;  //变量未初始化,此时变量保存值为:undefined
var name = "张三";   //定义变量时直接初始化,此时的变量值为 张三
var i = 0 , sum;  //JS也可以同时声明多个变量,用逗号隔开

关于变量的一个小实例:

<scrip>
   var x = 5;
   var y = 6;
   var  z = x + y;
   document.write(x + ",");
   document.write(y +  ",");
   document.write(z +  ",");
<scrip>
//输出结果为:5, 6, 11

注:可以把变量当做一个储存数据的容器

2.变量的命名规范

(1)变量必须以字母开头(也能以$和_开头,但是不推荐这么做)

(2)变量名称对大小写是敏感的(大写Y和小写y是不同的变量!)

注:JS语句和JS变量都对大小写敏感

3.变量的作用域

涉及到变量的作用域就有两个概念需要知道:(1)局部变量; (2) 全局变量。

全局变量:拥有全局作用域,在JS代码中任何地方都有定义。

局部变量:是在函数内部声明的变量,在函数内部任何地方都是有定义的,在函数退出后,会被销毁。

全局变量作用域示例:

<script>
            var globle;
            function test_globle_variable(){
                globle = "globle variable!";
                return globle;
            }
            test_globle_variable(); //调用测试全局变量的函数
            alert(globle);  //会弹出:globle variable!
        </script>

局部变量作用域示例:

<script>
            function test_loca_variable(){
                alert(local);  //会弹出undefined,此时变量是存在的,但是未被定义,叫做声明提前
                var local = "local variable"; //局部变量
                return local; //浏览器控制台会报错Uncaught ReferenceError:local is not defined,因为local的变量值只在函数内部生效
            }
            test_loca_variable();
            alert(local);
        </script>

在函数中,局部变量的优先级高于全局变量,假如有同名的局部变量和全局变量,那么局部变量会覆盖全局变量

<script>
    var variable = "global";  //定义了一个全局变量
    function test_variable(){
        var variable = "local";  //定义了一个同名的局部变量
            return variable;
        }
        alert(test_variable()); //弹出local
        alert(variable);  //弹出global
</script>

上面代码中,第一个alert是返回函数调用的返回值,即函数内部定义的变量variable,此时他替代了全局作用域中定义的variable的值,显示为local;

第二个alert是返回变量variable,由于调用结束后,内部定义的变量将被销毁,所以第二个弹出的语句是返回全局变量,全局变量并未改变,所以是global。

4.执行环境及作用域链

执行环境定义了变量或函数有权访问的其他数据,决定了他们的各自行为。某个执行环境中所有的代码执行完毕后,这个环境被销毁,保存在其中的所有函数和变量也随之被销毁

(注意:全局执行环境直到关闭页面时才被销毁!)全局执行环境是最外围的执行环境,在web浏览器中,全局执行环境被认为是window对象。

每一段JS代码(全局代码或函数)都有一个与之关联的作用域链,这个作用域链是一个对象列表,定义了这段代码“”作用域“”的变量。

当JS需要查找变量X的值时,踏会从链中的第一个对象开始查找,若这个对象有名为X的属性,则会直接使用这个属性的值,若没有,则会继续查找下一个对象,若整个作用域链上

都没有任何一个对象含有X,那么就称这段代码的作用域上不存在X,并抛出异常。

<script>
    function test_chain(){
        var x = 1;
            function f(){
                var y = 3;
                var sum = 0;
                sum = y + x;
                return sum;
        }
                return f();
            }
            alert(test_chain());  //弹出4
</script>

上面代码中,首先它会在函数f()中寻找变量X,找不到然后往上查找,找到后和3相加,最后就弹出4。

动力节点在线课程涵盖零基础入门,高级进阶,在职提升三大主力内容,覆盖Java从入门到就业提升的全体系学习内容。全部Java视频教程免费观看,相关学习资料免费下载!对于火爆技术,每周一定时更新!如果想了解更多相关技术,可以到动力节点在线免费观看JavaScript视频教程学习哦!

0人推荐
共同学习,写下你的评论
0条评论
代码小兵872
程序员代码小兵872

30篇文章贡献98658字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

JavaWeb的3大组件

代码小兵49806-11 15:28

全面解析Cookie技术

代码小兵49806-11 15:51

浅谈JavaWeb架构演变

代码小兵49806-11 16:22

探讨Web开发中的Session存储与管理

代码小兵51603-29 17:28

JavaScript基础知识

 暴风城-小飞04-06 20:49

发评论

举报

0/150

取消