为了账号安全,请及时绑定邮箱和手机立即绑定

怎么全是全局变量了?

function f1(){
var a=b=1;
};
f1();
console.log(typeof a);
console.log(typeof b);
VM551:6 number
VM551:7 number

我用谷歌的控制台,怎么全是number呢

正在回答

6 回答

浏览器不一样的原因吧,或者是你 var a =1 , var b = 1,分别声明看看,因为这种 var a=b=1 就不太好,

0 回复 有任何疑惑可以回复我~
#1

徒徒 提问者

找到问题了,我放在chrome的控制台执行的,两个都是number. 正常把代码放到网页里,typeof a是undefined
2015-05-16 回复 有任何疑惑可以回复我~
#2

徒徒 提问者

非常感谢!
2015-05-16 回复 有任何疑惑可以回复我~

。。。。。。。。。。

0 回复 有任何疑惑可以回复我~

var a=b=1,声明了a ,但是b没声明,js自动隐式声明b,js帮手声明的都是全局的,所以出现b可以在函数体外面访问

0 回复 有任何疑惑可以回复我~

我是这样想的,b=1就是申明了一个全局变量b, 而var a = b 就是申明局部变量a,a的值就是等于b的值为1.

JS的执行顺序是从右往左执行的。

0 回复 有任何疑惑可以回复我~

可我在Chrome 的控制台上, a 是 undefined , b 是 number 啊,如图(我直接复制你的代码的):

http://img1.sycdn.imooc.com//555aeec000011e7f13580212.jpg

0 回复 有任何疑惑可以回复我~

你想它是 String ?

0 回复 有任何疑惑可以回复我~
#1

徒徒 提问者

跟视频讲的不一样,视频上typeof a 是undefined
2015-05-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

怎么全是全局变量了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信