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

为什么不需要定义

 req1=app2(5,6);

 req2=app2(2,3);

 sumq=req1+req2;


document.write("req1的值:"+req1+"<br/>");

document.write("req2的值:"+req2+"<br/>");

document.write(req1+"与"+req2+"和:"+sumq);

这里的req1,req2,sumq为什么不用定义就可以用?


正在回答

5 回答

js可以随时调用一个字母作为变量,第一次调用的时候隐含的就进行了var声明。在定义一个没有被赋值的变量时是需要var定义的。

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

guessljl 提问者

非常感谢!
2016-07-19 回复 有任何疑惑可以回复我~

进行赋值req1=1(不带var),执行过程如下:

情况一

该语句是在函数体(function)内,就先在函数体内找变量req1,如果找到,就是给它赋值;

如果找不到,继续往上在函数体外找变量req1,找到赋值;还是找不到,就会自动在函数体外定义变量var req1.

情况二(即你的语句)

全局,往上找变量req1,找到赋值;找不到,就会自动定义变量var req1.

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

JS 是弱类型解析语言,可以定义也可以不定义,运行时会自动识别类型

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

未声明,则识别为全局变量。

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

js可以随时调用一个字母作为变量,第一次调用的时候隐含的就进行了var声明。所以是不需要定义的。

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468060    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

为什么不需要定义

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