在Javascript中声明时使用var而非var

在Javascript中声明时使用var而非var
当Javascript声明变量时,虽然使用var关键字声明和没有关键字声明,但是在运行许多次时有很多问题,但是这两种方式之间有差异。

var = 1;

变量在当前域中声明。如果在方法中声明,它是一个局部变量(局部变量);如果在全局域中声明它,它是一个全局变量。

和数字= 1;

事实上,这是一个属性赋值操作。首先,它将尝试在当前范围链中声明,如在方法中声明,当前范围链表示全局范围和局部范围等。如果在当前的任何范围链中发现了数值,它将执行数字属性分配。如果民没有被找到,它将创造num属性和指定值的全局对象,即当前作用域链的顶层对象,如窗口对象,..

小心 uff01instead声明一个全局变量,它会创建一个全局对象的一个属性。

即便如此,它可能让你了解一个变量声明和对象属性的创作之间的区别是困难的。事实上,声明变量,Javascript创建每个属性与每个Javascript有一定的符号为只读的(只读)不可数(dontenum)不能删除(dontdelete)等。

因为变量声明有自己的属性不能被删除,所以它被与var = 1和数字= 1进行比较。前者是变量声明,其属性不能被删除,因此不能删除。后者是全局变量的一个属性,可以从全局变量中删除。

具体地看下面的代码:

复制代码代码如下所示:
/ / num1作为全局变量num2是窗口的属性

VaR num1 = 1;

num2 = 2;

无法删除num1 / /删除;

删除 / /删除num2;

模型函数(){

VaR num1 = 1; / /局部变量

num2 = 2; / /窗口属性

匿名函数

(函数(){())

var = 1;本地变量

num1 = 2; / /继承范围(关闭

键盘数字3 = 3; / /窗口属性

}()

}
诗有着严格的模式(严格模式)在ecmascript5标准。在严格的模式,一个声明的标识符的分配将参考误差,从而防止意外的全局变量性质的创作,一些浏览器的新版本现在支持
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部