js全局变量不错的JS中变量相关的细节分析.pdfVIP

js全局变量不错的JS中变量相关的细节分析.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
js全局变量不错的JS中变量相关的细节分析.pdf

js全局变量:不错的JS中变量相关的细节分析 疯狂代码 http://CrazyC/ ĵ http:/CrazyC/Javascript/Article45720.html 这里讨论下我对Javascript中变量相关细节认识有不当的处欢迎来批   、变量类型   Javascript和Java、C这些语言区别它是种无类型、弱检测语言它对变量定义并不需要声明变量类型我们只 要通过赋值形式可以将各种类型数据赋值给同个变量例如: i=100;//Number类型 i=variable;//String类型 i={x:4};//Object类型 i=[1,2,3];//Array类型   JS这种特性虽然让我们编码更加灵活但也带来了个弊端不利于Debug编译器弱检测让我们维护冗长代码时 相当痛苦    2、变量声明   JS中变量申明分显式申明和隐式申明   var i=100;//显式申明 i=100;//隐式申明   在中使用var关键字进行显式申明变量是做为局部变量而没有用var关键字使用直接赋值方式声明是全局变 量     当我们使用访问个没有声明变量时JS会报错而当我们给个没有声明变量赋值时JS不会报错相反它会认为我 们是要隐式申明个全局变量这点定要注意    3、全局变量和局部变量   当JS解析器执行时首先就会在执行环境里构建个全局对象我们定义全局属性就是做为该对象属性读取在顶 层代码中我们使用this关键字和window对象都可以访问到它而体中局部变量只在执行时生成对象中存在执行完 毕时局部变量即刻销毁因此在设计中我们需要考虑如何合理声明变量这样既减小了不必要内存开销同时能很大 程度地避免变量重复定义而覆盖先前定义变量所造成Debug麻烦    4、变量作用域   任何语言中变量作用域都是个很关键细节JS中变量作用域相对和JAVA、C这类语言显得更自由个很大特征 就是JS变量没有块级作用域中变量在整个都中有效运行下面代码: SCRIPT LANGUAGE=JavaScript type=text/javascript //定义个输出 function outPut(s){ document.writeln(s) } //全局变量 var i=0; //定义外部 function outer{ //访问全局变量 outPut(i); // 0 //定义个类部 function inner{ //定义局部变量 var i = 1; // i=1; 如果用隐式申明 那么就覆盖了全局变量i outPut(i); //1 } inner; outPut(i); //0 } outer; /SCRIPT   输出结果为0 1 0从上面就可以证明JS如果用var在体中声明变量那么此变量在且只在该体内有效运行结束 时本地变量即可销毁了   由于上面这个JS特性还有个关键问题需要注意此前直使用ActionScript虽然它和JS都是基于ECMA标准但在 这里还是略有区别例如下面代码: SCRIPT LANGUAGE=JavaScript type=text/javascript //定义个输出 function outPut(s){ document.writeln(s) } //全局变量 var i=0; //定义外部 function outer{ //访问全局变量 outPut(i); // 0 //定义个类部 function inner{ outPut(i); //undefiend var i=1; outPut(i); //1 } inner; outPut(i); //0 } outer; /SCRIPT   你可能认为输出结果是0 0 1 0事实上在AS中确实是这样而在JS中输入却是0 und 1 0为何会这样了?刚才 我们说到了JS体中声明本地变量在整个中都有效因此在上面代码中var i = 1 ;在inner中都有效实际上显式声明 变量i是在预编译时就已经编译到对象中了区别于隐式声明变量在解释时才被定义为全局变量只是在outPut(i)时 还没有将它化变量此时本地变量i是未赋

您可能关注的文档

文档评论(0)

wuyouwulu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档