个人头像

柠檬酸

24小时前来过

控制台
欢迎来到我的博客!
默认封面

00:00/

播放列表

js定义变量时,有var关键字和没var关键字有什么差别?

发布于2017-06-02 / 186次浏览

百度知道:

1.在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量。
2.在全局作用域下,使用var定义的变量不可以delete,没有var 定义的变量可以delete.也就说明隐含全局变量严格来说不是真正的变量,而是全局对象的属性,因为属性可以通过delete删除,而变量不可以。

通俗点说:变量在方法外面没什么区别,都是全局变量。在方法里面的话没有就是默认全局变量,有的话就是函数内部的局部变量,这个变量只在这个方法内有效,不会影响函数外的变量。


<script>
var a=1;
b=2;
function test(){
c=3;
var d=4;
}
test();
alert('a='+a);
alert('b='+b);
alert('c='+c);
alert('d='+d);//这个就会报错,因为它不是全局变量
</script>

但是如果定义了test()函数但没有调用test(),alert(‘c’+c)会提示c is not defined!
简单的理解为,在函数里写的变量,不管有没有var,只要不调用,就不会定义这个变量。(除非在函数外已经定义过。)
个人理解,有错误望能指正!

喜欢 1
TAGS:  
本站文章除注明转载/出处外,均为本站原创或翻译。若要转载但请务必注明出处,尊重他人劳动成果。 转载请注明出处链接 : js定义变量时,有var关键字和没var关键字有什么差别?

1 条评论

  1. 2017-09-25 19:49

    […] 就像我在之前的博客写的那样js定义变量时,有var关键字和没var关键字有什么差别? […]