Javascrip一个变量名同时赋值不同的数据类型还是看做同一个变量吗,具体看代码
 <!DOCTYPE html>
<html>
    <head lang="en">
        <meta charset="utf-8">
        <title></title>
    </head>
    <body bgcolor="white">
        <!--h1>hello</h1>
        <h1><h2>hello</h2></h1-->
        <script>
            var x=1;
            var x=false;
            var x="string";
            document.write(x);
            //"JavaScript 拥有动态类型,这意味着相同的变量可用作不同的类型"对这句话不理解自己做了一个测试,既然可以看成相同的变量那为什么输出变量值时只会显示字符串类型的值?还是说几种不同的数据类型也有显示的优先级?如果是这样那这还是同一个变量吗,这在JS中有什么用处,菜鸟初学不是很理解。
            //document.write("<br/>"+x1);
            //document.write("<br/>"+x2);
        </script>
    </body>
</html>

运行结果显示:
图片说明

3个回答

JavaScript是弱类型的,不像Java有八种数据类型,JavaScript中变量都用var申明,所以你先后不管给什么值 在js 里面没什么区别,如果给通过一个变量名赋值多次,后面将会覆盖前面,没有什么优先级,也跟数据类型没关系

后面的赋值会把前面的覆盖,自然显示一个。我觉得动态类型的意思是同一个变量在不同的环境下可以是不同的数据类型,例如1+a,如果a是数字那1也是整型进行加法运算,如果a是字符串那1这时就当作字符串进行拼接操作

qq_40919174
qq_40919174 回复早稻城: 呵呵,客气了,我学编程时间也不长,之前大学学物理的
2 年多之前 回复
u011233710
早稻城 原来是覆盖,对于动态类型你的理解有帮助到我,非常感谢
2 年多之前 回复

JavaScript的变量类型是根据变量里面的数据一样的,你可以直接console.log(typeof 变量名)测试,跟java不一样的,如果只是定义var a,那么a你用typeof
得到的是undefined,如果你定义var a = "12414", typeof 得到的是string,如果你定义var a; a = "13123",这样之后a还是string。不过现在的java变量
定义渐渐开始用let定义了,var可以试着少用。

u011233710
早稻城 也就是说代码中只有一个变量x,不同的数据类型只是改变了x的值,前面的会被后面的覆盖,理解了,非常感谢
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问