成果详解javascript作用域.pptx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

JavaScript作用域

作用域变量的作用域作用域链

1.作用域通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。1.1作用域概述JavaScript(es6前)中的作用域有两种:全局作用域局部作用域(函数作用域)

1.作用域作用于所有代码执行的环境(整个script标签内部)或者一个独立的js文件。1.2全局作用域

1.作用域1.3局部作用域(函数作用域)作用于函数内的代码环境,就是局部作用域。因为跟函数有关系,所以也称为函数作用域。

1.作用域1.4JS没有块级作用域if(true){intnum=123;system.out.print(num);//123}system.out.print(num);//报错块作用域由{}包括。在其他编程语言中(如java、c#等),在if语句、循环语句中创建的变量,仅仅只能在本if语句、本循环语句中使用,如下面的Java代码:

1.作用域1.4JS没有块级作用域if(true){varnum=123;console.log(123);//123}console.log(123);//123Js中没有块级作用域(在ES6之前)。

作用域变量的作用域作用域链

2.变量的作用域2.1变量作用域的分类在JavaScript中,根据作用域的不同,变量可以分为两种:全局变量局部变量

2.变量的作用域在全局作用域下声明的变量叫做全局变量(在函数外部定义的变量)。全局变量在代码的任何位置都可以使用在全局作用域下var声明的变量是全局变量特殊情况下,在函数内不使用var声明的变量也是全局变量(不建议使用)2.2全局变量

2.变量的作用域在局部作用域下声明的变量叫做局部变量(在函数内部定义的变量)局部变量只能在该函数内部使用在函数内部var声明的变量是局部变量函数的形参实际上就是局部变量2.2局部变量

2.变量的作用域全局变量:在任何一个地方都可以使用,只有在浏览器关闭时才会被销毁,因此比较占内存局部变量:只在函数内部使用,当其所在的代码块被执行时,会被初始化;当代码块运行结束后,就会被销毁,因此更节省内存空间2.3全局变量和局部变量的区别

作用域变量的作用域作用域链

3.作用域链只要是代码,就至少有一个作用域写在函数内部的局部作用域如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域根据在内部函数可以访问外部函数变量的这种机制,用链式查找决定哪些数据能被内部函数访问,就称作作用域链

3.作用域链案例1:结果是几?functionf1(){varnum=123;functionf2(){console.log(num);}f2();}varnum=456;f1();

3.作用域链案例分析

3.作用域链作用域链:采取就近原则的方式来查找变量最终的值。

3.作用域链案例2:结果是几?vara=1;functionfn1(){vara=2;varb=22;fn2();functionfn2(){vara=3;fn3();functionfn3(){vara=4;console.log(a);//a的值?console.log(b);//b的值?}}}fn1();

文档评论(0)

159****9610 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6044052142000020

1亿VIP精品文档

相关文档