avascript变量声明的方法实例
js中使用一个变量之前应当先声明。变量使用关键字var来声明。
如果未在var声明语句中给变量指定初始值,则该变量值为undefined。
不用在声明变量时指定变量类型,js变量可以是任意数据类型。
使用var语句重复声明变量是合法且无害的。如果重复声明带有初始化器,则就和简单的赋值语句没啥区别。
如果试图读取一个没有声明的变量,则js会报错。在ECMAScript5严格模式下,给一个没有声明的变量赋值也会报错;然而从历史上来说,在非严格模式下,如果给一个未声明变量赋值,js实际上会给全局对象创建一个同名属性,且貌似它工作起来像一个正确声明的全局变量。这意味着你可以侥幸不声明全局变量,但这是一个坏习惯会造成很多bug,最好始终使用var来声明变量。
在函数体内,同名的局部变量会覆盖全局变量。
尽管全局作用域写代码可以不写var语句,但声明局部变量时必须使用var语句,参考如下代码:
scope = "global";function foo(){ scope="local" //fk!我们刚刚修改了全局变量!!!}
在类似C语言的编程语言中,花括号中每一段代码都有各自的作用域,且变量在声明它们代码段之外是不可见的,我们称之为块级作用域(block scope);而js中没有块级作用域,而是取而代之的使用了函数作用域(function scope):变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的(无论是内嵌套还是外嵌套?)
js的`函数作用域指在函数内声明的所有变量在函数体内始终是可见的,这意味着变量在声明前甚至可以使用了。js的这个特性非正式的称为声明提前(hoisting),即js函数里声明的所有变量(但没有赋值)都被“提前”至函数体的顶部。
var scope = "global";function f(){ (scope); //输出"undefined"而不是"global" var scope = "local"; //变量在这里赋初始值,但变量在函数体内任何地方均是有定义的 (scope); //输出"local"
以上代码等价于:
function f(){ var scope; (scope); scope = "local"; (scope); }
当声明一个js全局变量时,实际上定义了全局对象的一个属性。
当用var声明一个变量时,创建的这个属性时不可配置的,即无法用运算符删除;但当你没有使用严格模式并给一个未声明的变量赋值的话,js会自动创建一个全局变量,以这种方式创建的变量是全局对象的正常可配置属性,是可以删除的:
var x = 1; y = 2;this.z = 3; //同上 x; //返回false,无法删除变量 y; //返回true,变量被删除 this.z //同上
希望本文所述对大家的javascript程序设计有所帮助。
-
道歉的声明
道歉的声明1王先生:您与x年11月4日中午在石锅鱼xx店就餐期间,本店服务员张称您对其肢体侮辱。后在本店,服务员伙同他人对您进行了人身伤害,本事件经公安部门调取现场监控进行核实,现确认您并未对张进行过任何侮辱行为。在此本店及张。特向您进行公开道歉。对您造成...
-
员工入职声明书
员工入职声明书1本人,黄xx,就受聘于xx半导体有限公司事宜作如下声明:一、本人在此声明:本人向公司出示的、陈述的任何有关本人自身情况的说明都是真实的。本人自身情况包括但不限于本人的身份证、学历、学位、技能,工作经历、家庭情况、计划生育、身体状况等等。若...
-
(精)承诺的声明
承诺的声明1广东省通信管理局:本公司承诺按照提交申请的`域名网站依法经营,不以篡改网站经营内容的方式申请相关经营许可证;如从事依法须经其他有关部门批准的活动,经相关部门批准后才开展相应经营活动。如违反此承诺,本公司愿意承担相应法律后果,接受贵局的处置。特...
-
公司无违规声明书范文
公司无违规声明书范文1深圳市xx安全技术事务有限公司:为贵公司安全评价工作的顺利开展,我司承诺,下列事项足以代表我公司真实情况:1、我公司是经政府工商行政管理部门依法注册成立具有独立法人资格的企业,并根据《中华人民共和国法》、《危险化学品安全管理条例》、...
相关文章
- 英文求职信AdminstrationExecutive Assistant
- i recall with embarrassing clarity the flavor of those particular ashes ?
- 暑假计划英语作文:My summer vacation travel plans
- ADMINISTRATIVE ASSISTANT(Personnel)电子简历模板
- 葡萄牙语的历史:Revolucionários apossam-se de Porto Alegre
- Snapchat 为何开始试水类 Path 的 ‘Stories’ 社交功能?
- 几种实用的JavaScript鼠标特效
- javascript的基本规范
- 评课稿:skim and match the pictures with each paragraph
- 微信服务号无法获取AppId和AppSecret的方法