怎么全是全局变量了?

来源:3-1 [JavaScript]block语句、var语句

徒徒

2015-05-16 16:52

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

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

写回答 关注

6回答

  • _Exception
    2015-05-16 20:31:30
    已采纳

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

    徒徒

    非常感谢!

    2015-05-16 21:40:38

    共 2 条回复 >

  • Bosn
    2015-06-05 10:46:13

    。。。。。。。。。。

  • kertz
    2016-03-01 17:36:12

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

  • 西饼嘿
    2015-07-28 15:00:23

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

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

  • Issa_Tan
    2015-05-19 16:05:45

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

    http://img.mukewang.com/555aeec000011e7f13580212.jpg

  • _Exception
    2015-05-16 18:30:15

    你想它是 String ?

    徒徒

    跟视频讲的不一样,视频上typeof a 是undefined

    2015-05-16 20:23:11

    共 1 条回复 >

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281101 学习 · 1020 问题

查看课程

相似问题