JavaScript里的var变量

最近学了一点HTML和JavaScript。 在JavaScript里面有var变量,而且好像只有var变量。换句话说var就是个万精油,他没有确定的类型,他的类型取决于赋值给他的变量的类型。例如:
       

var a = 123;
var b = "123";
var c = document.getElementById("表单id");

a是数字,而b是字符串,c则是对象。var变量既有优点也有缺点。优点就是我们在声明变量时,统一都用var就OK了,不用去考虑是什么类型。而缺点就是用着用着你可能就不知道这个变量到底是什么类型的了。为了解决这个问题,我把所有的var尽量赋值为对象。例如我们要获取表单的值,我会这样做:

var d = document.getElementById("表单id");
d.value;//获取d的值

而不是这样:

var d = document.getElementById("表单id").value;

这两种方法都可获取表单里的值,但是第一种更好。第一,获取一个对象后我们还可以进行其他操作,而获取单一字符串能进行的操作就十分有限了。第二,如果工作量十分大的话,过了一段时间后你还知道d到底是对象还是字符串吗?所以统一标准对于我们编程十分重要。

这里还要给大家提个醒的是,JavaScript里的对象和java里面一样,变量只是对象的管理者而不是对象的拥有者。下面举个例子:

<form>
        <input type="text" name="username1" id="username1">
        <input type="submit" onclick="getUsername()">
    </form>
    <script>
        function getUsername(){
            var username2 = document.getElementById("username1");
            username2.value = "123";
        }
    </script>
</form>

假如我在表单里填入abc,那么我提交后,后台获取的数据是什么呢?答案是123!不熟悉java的小伙伴可能会觉得不可思议:我只是在javaScript里把一个新的变量username2的值改了嘛,username1的值为什么会变了呢?这就是Java语言的特性,变量只是对象的管理者而不是对象的拥有者。所以username1,username2共同管理一个对象,所以username2改变了,username1也当然改变了。这就是为什么很多同学在刚开始学JavaScript时不理解:为什么函数里的变量改变,会影响到函数外的变量。这跟c语言传指针进入函数是一样道理。

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值