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程序设计有所帮助。
-
员工离职声明集合15篇
员工离职声明1尊敬的客户:您好!感谢您在此前一直对本公司的信任与支持,由于本公司业务人员的人事变动给您带来的不便,尽请谅解。原公司业务员李杨洋与公司于20xx年11月1日正式离职,与公司解除劳动关系。我公司郑重声明:该员工自离职之日起发生的所有业务关系均属个...
-
(必备)中小企业声明函
中小企业声明函1本公司郑重声明,根据《政府采购促进中小企业发展暂行办法》(财库[]181号)的规定,本公司为中型(请填写:中型、小型、微型)企业。即,本公司同时满足以下条件:1、根据《工业和信息化部、国家统计局、国家发展和改革委员会、财政部关于印发中小企业划型...
-
关于道歉声明精选11篇
关于道歉声明1本人刘,因受人唆使在网上发帖恶意攻击“xx市仓储设备有限公司”,对此本人深感后悔,对x公司造成了名誉损失,特别发贴向x公司表示道歉。本人刘承诺此后不会以任何形式在任何媒体或网页上发表类似的攻击x公司的言论。特此声明。声明人:xx20xx年xx月xx日关...
-
个人离职声明(精华14篇)
个人离职声明1我,因为我的职位,已经和自己结清了所有的账目,公司没有欠我任何欠款。本人在此声明,自签字后已办理离职手续。从那以后,我不再是盛辉物流公司的员工,我的`一切行为都与盛辉公司无关。我在此声明!声明人签名:20xx年xx月xx日个人离职声明2尊敬的经理:您好!我...
相关文章
- 葡萄牙语的历史:Revolucionários apossam-se de Porto Alegre
- 暑假计划英语作文:My summer vacation travel plans
- Snapchat 为何开始试水类 Path 的 ‘Stories’ 社交功能?
- ADMINISTRATIVE ASSISTANT(Personnel)电子简历模板
- 评课稿:skim and match the pictures with each paragraph
- 英文求职信AdminstrationExecutive Assistant
- 几种实用的JavaScript鼠标特效
- i recall with embarrassing clarity the flavor of those particular ashes ?
- javascript的基本规范
- 微信服务号无法获取AppId和AppSecret的方法