zoukankan      html  css  js  c++  java
  • JavaScript 变量

    一,JavaScript 变量(存储信息的容器)

    与代数一样,JavaScript 变量可用于存放值(比如 x=2)和表达式(比如 z=x+y)。

    变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume)。

    • 变量必须以字母开头
    • 变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
    • 变量名称对大小写敏感(y 和 Y 是不同的变量)

    提示:JavaScript 语句和 JavaScript 变量都对大小写敏感。

    二,JavaScript 变量数据类型 

    JavaScript 变量还能保存其他数据类型,分别是:Number、String、Boolean、Object、Udefined、Null,JavaScript不支持自定义类型,所以JavaScript中的所有值都属于这六种类型之一。

    检查变量类型方法之一:typeof操作符(typeof是操作符,不是方法,因此,typeof中的字母'o'是小写的。)

    格式:typeof 变量

    <script type="text/javascript">
           var a = 12;
           alert(typeof a);   //number
          
           a = "asdf";
           alert(typeof a);   //string
          
           a = true;
           alert(typeof a);   //boolean
          
           a = function() {
               alert("adfasdf");
           };
           alert(typeof a);   //function
          
           a = document;
           alert(typeof a);   //object
          
           var b;
           alert(typeof b);  //undefined
        </script>

    三,声明(创建) JavaScript 变量

    在 JavaScript 中创建变量通常称为“声明”变量。提示:一个好的编程习惯是,在代码开始处,统一对需要的变量进行声明

    我们使用 var 关键词来声明变量:

    var carname;

    变量声明之后,该变量是空的(它没有值)变量 carname 的值将是 undefined。

    如需向变量赋值,请使用等号:

    carname="Volvo";

    不过,您也可以在声明变量时对其赋值:

    var carname="Volvo";

    例子

    在下面的例子中,我们创建了名为 carname 的变量,并向其赋值 "Volvo",然后把它放入 id="demo" 的 HTML 段落中:

    <!DOCTYPE html>
    <html>
    <body>
    
    <p>点击这里来创建变量,并显示结果。</p>
    
    <button onclick="myFunction()">点击这里</button>
    
    <p id="demo"></p>
    
    <script>
    function myFunction()
    {
    var carname="Volvo";
    document.getElementById("demo").innerHTML=carname;
    }
    </script>
    
    </body>
    </html>

    四,一条语句,多个变量

    您可以在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可:

    var name="Gates", age=56, job="CEO";

    声明也可横跨多行:

    var name="Gates",
    age=56,
    job="CEO";

    五,重新声明 JavaScript 变量

    如果重新声明 JavaScript 变量,该变量的值不会丢失

    在以下两条语句执行后,变量 carname 的值依然是 "Volvo":

    var carname="Volvo";
    var carname;

    六,JavaScript 算数

    您可以通过 JavaScript 变量来做算数,使用的是 = 和 + 这类运算符:

    例子

    <!DOCTYPE html>
    <html>
    <body>
    
    <p>假设 y=5,计算 x=y+2,并显示结果。</p>
    <button onclick="myFunction()">点击这里</button>
    
    <p id="demo"></p>
    
    <script>
    function myFunction()
    {
    var y=5;
    var x=y+2;
    var demoP=document.getElementById("demo")
    demoP.innerHTML="x=" + x;
    }
    </script>
    
    </body>
    </html>

    七,JavaScript 全局变量和局部变量

    JavaScript 有两种变量:全局变量和局部变量。

    全局变量:如果在任何函数定义之外声明了一个变量,则该变量为全局变量,且该变量的值在整个持续范围内都可以访问和修改。网页上的所有脚本和函数都能访问它,全局变量会在页面关闭后被删除。

    局部变量:如果在函数定义内声明了一个变量,则该变量为局部变量。每次执行该函数时都会创建和破坏该变量;且它不能被该函数外的任何事物访问。只要函数运行完毕,本地变量就会被删除。 

    当全局变量跟局部变量重名时,局部变量的scope会覆盖掉全局变量的scope,此时,如需使用全局变量,可使用window.globalVariableName,当离开局部变量的scope后,又重回到全局变量的scope,同时,Javascript在执行前会对整个脚本文件的声明部分做完整分析(包括局部变量),从而确定实变量的作用域。

    举例如下:

    <script>  
        var a =1;  
        function test(){  
            alert(a); //a为undefined! 这个a并不是全局变量,这是因为在function scope里已经声明了(函数体倒数第4行)一个重名的局部变量,  
                         //所以全局变量a被覆盖了,这说明了Javascript在执行前会对整个脚本文件的定义部分做完整分析,所以在函数test()执行前,  
                         //函数体中的变量a就被指向内部的局部变量.而不是指向外部的全局变量. 但这时a只有声明,还没赋值,所以输出undefined。  
            a=4         
            alert(a);  //a为4,没悬念了吧? 这里的a还是局部变量哦!  
            var a;     //局部变量a在这行声明  
            alert(a);  //a还是为4,这是因为之前已把4赋给a了  
        }  
        test();  
        alert(a); //a为1,这里并不在function scope内,a的值为全局变量的值  
    </script>  
    <script>  
        var a =1;  
        function test(){     
            alert(window.a);  //a为1,这里的a是全局变量哦!  
            var a=2;     //局部变量a在这行定义  
            alert(a);  //a为2,这里的a是局部变量哦!  
        }  
        test();  
        alert(a); //a为1,这里并不在function scope内,a的值为全局变量的值  
    </script>  
  • 相关阅读:
    Visual Detection of Lintel-Occluded Doors from a Single Image
    Linux下快速构建Android编译环境
    How to Train YOLOv4 on a Custom Dataset
    yolo v4 darknet colab
    Deep Image Matting
    给 MSYS2 添加中科大的源
    msys2 mingw64 ffmpeg 搭建最新ffmpeg编译环境 可用 ffmpeg 4.1 及更新版本
    GB28181对接摄像机/NVR视频流
    video.js在iframe中如何解决无法自动播放问题
    LiveGBS-摄像机网页低延时无插件直播实现
  • 原文地址:https://www.cnblogs.com/iceflorence/p/5810765.html
Copyright © 2011-2022 走看看