代码描述:js使用 var声明变量区别。js使用var声明变量区别简单介绍
在介绍之前首先说明一点,在严格模式下,不使用var声明变量将会报错,所以最好在任何时候声明变量都要使用var关键字。 非严格模式或者非新的js版本中,声明一个变量var关键字不是必须的,下面就介绍一下使用var和不使用var之间的区别。 先看一段代码实例:
<script> function func(){ var url="https://www.51qianduan.com"; webName="51前端"; } func(); //console.log(url)会报错 console.log(webName); </script>
在函数作用域内,使用var声明的变量只能够在此函数作用域内使用,而不用var声明的变量,可以在全局范围内使用。 再来看一段代码:
<script> var url="https://www.51qianduan.com"; webName="51前端"; console.log(window.url); console.log(window.webName); </script>
在全局作用域声明的变量,无论加不加var都是作为全局对象的一个属性,但这并不说明它们两者没有区别,看如下代码:
<script> var url="https://www.51qianduan.com"; webName="51前端"; var urlTx=Object.getOwnPropertyDescriptor(window,'url') var webNameTx=Object.getOwnPropertyDescriptor(window,'webName') for(var propUrlTx in urlTx){ console.log(propUrlTx+":"+urlTx[propUrlTx] ); } for(var propWebNameTx in webNameTx){ console.log(propWebNameTx+":"+webNameTx[propWebNameTx]); } </script>
从上面代码的输出值来看,两者还是有区别的,两个属性的configurable特性值是不同的,带var的是false,不带var的是true。configurable决定了一个属性是否可以被delete运算符删除,如果是false就不能删除,如果为true则能够被删除,看如下代码:
<script> var url="https://www.51qianduan.com"; webName="51前端"; delete window.url; delete window.webName; console.log(window.url); console.log(window.webName); </script>
请绑定手机号,在继续操作
注意:只有绑定手机以后,才可使用网站全部功能