问答详情
源自:2-6 JavaScript-关闭窗口(window.close)

关于变量定义var的疑问

对变量定义var没有很明白其含义。

有学过c语言,在c中定义变量是根据数据类型的,比如int  double  char等,那var是指什么?

另外 “=” 是赋值 的含义,那 我定义 var num=alert(”99“),意思应该是将alert(”99“)赋值给”num"吧? 为什么我去引用num的时候 num的赋值会是”99“呢?

提问者:徐锦杰 2016-11-02 21:44

个回答

  • 老友丶
    2016-11-02 22:03:23
    已采纳

    首先JavaScript是一门弱类型的语言(个人感觉更加简单),他会自动隐式转换类型,所有的变量命名都用var,不管是数组,整型。浮点型。

    至于你使用那句,表示看不懂,后面是一个y语句,调用window的一个alert方法,输出99,这样一个方法复制给一个变量。语法上是错误的,我用FIrefox,发现num会是一个undefined的值,这符合我理解,你这个99表示疑惑。

  • 六士
    2016-11-02 23:00:26


    你这个num的数据类型是undefined,并不是数字,只是再次引用的时候具有有数字类型的nan属性。

    你可以直接在alert(num); 看看会出来什么。

    附上我回答是验证的代码。调试js数据类型可以试试console.log();  在浏览器的控制台看效果。

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>js-dom</title>
        </head>
        <body>
            <input type="button" onclick="sun()" value="1"  />
            <p id="chr1">test</p>
            
            
            <script type="text/javascript">
                function sun(){
                    var num=alert("99");
                    alert(num);
                    
                    var x = 10;
                    var a = alert(document.getElementById("chr1"));
                    var b = document.getElementById("char1");
                    var c = document.getElementById("chr1");
                    var d = document.getElementById("chr1").getAttribute("value");
                    var e = alert("66");
                    var f = e + 10;
                    var g = x + 10;
                    alert(f);
                    console.log(x);
                    console.log(a);
                    console.log(b);
                    console.log(c);
                    console.log(d);
                    console.log(e);
                    console.log(f);
                    console.log(g);
                    
                }    
            </script>
            
        </body>
    </html>

    http://img.mukewang.com/5819ff7e000148d005730716.jpg

  • 未久
    2016-11-02 22:08:32

    var就是variable的缩写,在JS中的变量是弱类型,不需要指定类型,并且还可以随时赋值改变它的类型。与C语言不同。另一个问题,我没有去试,但是我觉得alert这个方法的返回值就是“”中输出的值,num被赋值的是alert这个方法的返回值。

  • 慕粉15171496021
    2016-11-02 22:08:20

    你估计没试过python,二者都是脚本语言,是动态的。没有类型之分。判断类型的任务交给了后台的解释器。

    interpreter

    var a = 99

    a = ‘one’

    这里的a只是一个容器,当我装99时候a就是整数,当我