返回信息流今天看网上看到下面一段代码,始终不得姐,各位大神看下是怎么回事呢 ,三个a分别是100,10,100
<script type="text/javascript">
var a = 10;
function test() {
a = 100;
alert(a);
alert(this.a);
var a;
alert(a);
}
test();
</script>
这是一条镜像帖。来源:北邮人论坛 / www-technology / #30614同步于 2015/6/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
js变量求教
xiaocang
2015/6/28镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
【 在 xiaocang 的大作中提到: 】
: 今天看网上看到下面一段代码,始终不得姐,各位大神看下是怎么回事呢 ,三个a分别是100,10,100
: <script type="text/javascript">
: var a = 10;
: ...................
因为js解释器会把函数里面的变量声明提前,所以你这份代码就等价于下面这段代码:
<script type="text/javascript">
var a = 10;
function test() {
var a;
a = 100;
alert(a);
alert(this.a);
alert(a);
}
test();
</script>
【 在 xiaocang 的大作中提到: 】
: 已解!在函数中声明var a,所以函数中的a变为局部变量,this.a仍指向全局变量,所以为10.
因为你调用方法是test(); 这样的话,this指针应该是绑定的当前的window对象,所以 this.a 就等于 window.a
如果你使用 new test(); 的话,而不是 test(); 。
那么此时的this.a 就不是10了,应该是 undefined。
Js有几种数据类型?
【 在 hyqdvd 的大作中提到: 】
: 为什么这里的test()可以new?这里的test()函数不是构造对象的函数呀。。。。
书上写的是六种,undefined,null,boolean,number,string,object。。。。这个和我问的问题有什么联系?
【 在 stevesasuke 的大作中提到: 】
: Js有几种数据类型?
那函数是哪种?
或者都不是?
【 在 hyqdvd 的大作中提到: 】
: 书上写的是六种,undefined,null,boolean,number,string,object。。。。这个和我问的问题有什么联系?