首页 > javascript 函数体外使用var 定义变量 和 不使用var 有区别吗?

javascript 函数体外使用var 定义变量 和 不使用var 有区别吗?

例如 :

var a=2;
a=2;
function fnName(){}


ES 5 严格模式之前,是没有区别的,但严格模式中禁止向未声明的变量赋值,因此必须进行变量声明。
在实际应用中,一般禁止第二种写法,所以还是坚持声明变量吧。


javascript 函数体外使用var 定义变量 和 不使用var 有区别吗?

这是题注的问题,我的回答是:

有区别。


不加var 就是全局变量


Declared variables are a non-configurable property of their execution context (function or global). Undeclared variables are configurable (e.g. can be deleted).

var声明的在作用域下是non-configurable的,也就是不可以delete掉;而不用var的,则相反

参考:https://developer.mozilla.org/en-US/docs...


使用了var定义的变量是局部变量,不使用的话就是全局变量。最好全部使用var来定义变量,以免出现变量值在不同函数中被互相影响。


1.在浏览器的script标签下或一个单独的js文件中

<script>
var a=2;
b=1;
</script>

a,b都是全局变量

2.在一个函数体内

function fun(){
    var a=2;
    b=1;
}

a为局部变量
b为全局变量

【热门文章】
【热门文章】