Javascrip一个变量名同时赋值不同的数据类型还是看做同一个变量吗,具体看代码

<!DOCTYPE html>

<html>

    <head>

        <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>

运行结果显示:

https://img4.mukewang.com/5cd922410001250802510069.jpg

哆啦的时光机
浏览 1120回答 3
3回答

跃然一笑

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

白衣染霜花

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

千万里不及你

JavaScript的变量类型是根据变量里面的数据一样的,你可以直接console.log(typeof 变量名)测试,跟java不一样的,如果只是定义var a,那么a你用typeof得到的是undefined,如果你定义var a = "12414", typeof 得到的是string,如果你定义var a; a = "13123",这样之后a还是string。不过现在的java变量定义渐渐开始用let定义了,var可以试着少用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript