徐锦杰
2016-11-02 21:44
对变量定义var没有很明白其含义。
有学过c语言,在c中定义变量是根据数据类型的,比如int double char等,那var是指什么?
另外 “=” 是赋值 的含义,那 我定义 var num=alert(”99“),意思应该是将alert(”99“)赋值给”num"吧? 为什么我去引用num的时候 num的赋值会是”99“呢?
首先JavaScript是一门弱类型的语言(个人感觉更加简单),他会自动隐式转换类型,所有的变量命名都用var,不管是数组,整型。浮点型。
至于你使用那句,表示看不懂,后面是一个y语句,调用window的一个alert方法,输出99,这样一个方法复制给一个变量。语法上是错误的,我用FIrefox,发现num会是一个undefined的值,这符合我理解,你这个99表示疑惑。
你这个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>
var就是variable的缩写,在JS中的变量是弱类型,不需要指定类型,并且还可以随时赋值改变它的类型。与C语言不同。另一个问题,我没有去试,但是我觉得alert这个方法的返回值就是“”中输出的值,num被赋值的是alert这个方法的返回值。
你估计没试过python,二者都是脚本语言,是动态的。没有类型之分。判断类型的任务交给了后台的解释器。
interpreter
var a = 99
a = ‘one’
这里的a只是一个容器,当我装99时候a就是整数,当我
JavaScript入门篇
739814 学习 · 9566 问题
相似问题