首页编程java编程javascript中运用域是什么意思(请问javascript中作用域和执行环境是不是一个概念)

javascript中运用域是什么意思(请问javascript中作用域和执行环境是不是一个概念)

编程之家2023-10-1197次浏览

很多朋友对于javascript中运用域是什么意思和请问javascript中作用域和执行环境是不是一个概念不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

javascript中运用域是什么意思(请问javascript中作用域和执行环境是不是一个概念)

JavaScript作用域链使用介绍

之前写过一篇JavaScript闭包究竟是什么的文章理解闭包觉得写得很清晰可以简单理解闭包产生原因但看评论都在说了解了作用域链和活动对象才能真正理解闭包起初不以为然后来在跟公司同事交流的时候发现作用域和执行环境确实很重要又很基础对理解JavaScript闭包很有帮助所以在写一篇对作用域和执行环境的理解

作用域

作用域就是变量和函数的可访问范围控制着变量和函数的可见性与生命周期在JavaScript中变量的作用域有全局作用域和局部作用域

javascript中运用域是什么意思(请问javascript中作用域和执行环境是不是一个概念)

单纯的JavaScript作用域还是很好理解的在一些类C编程语言中花括号内的每一段代码都有各自的作用域而且变量在声明它们的代码段外是不可见的称之为块级的作用域 JavaScript容易让初学者误会的地方也在于此 JavaScript并没有块及的作用域只有函数级作用域变量在声明它们的函数体及其子函数内是可见的

变量没有在函数内声明或者声明的时候没有带var就是全局变量拥有全局作用域 window对象的所有属性拥有全局作用域在代码任何地方都可以访问函数内部声明并且以var修饰的变量就是局部变量只能在函数体内使用函数的参数虽然没有使用var但仍然是局部变量

javascript中运用域是什么意思(请问javascript中作用域和执行环境是不是一个概念)

复制代码代码如下:

var a=;//全局变量 function fn(b){//局部变量 c=;//全局变量 var d=;//局部变量 function subFn(){ var e=d;//父函数的局部变量对子函数可见 for(var i=;i<;i++){ console write(i);} alert(i);//在for循环内声明循环外function内仍然可见没有块作用域}} alert(c);//在function内声明但不带var修饰仍然是全局变量

只要是理解了JavaScript没有块作用域简单的JavaScript作用域很好理解还有一点儿容易让初学者迷惑的地方是JavaScript变量可函数的与解析或者声明提前好多种叫法但说的是一件事情 JavaScript虽然是解释执行但也不是按部就班逐句解释执行的在真正解释执行之前 JavaScript解释器会预解析代码将变量函数声明部分提前解释这就意味着我们可以在function声明语句之前调用function这多数人习以为常但是对于变量的与解析乍一看会很奇怪

复制代码代码如下:

console log(a);//undefined var a=; console log(a);// console log(b);//Uncaught ReferenceError: b is not defined

上面代码在执行前var a=;的声明部分就已经得到预解析(但是不会执行赋值语句)所以第一次的时候会是undefined而不会报错执行过赋值语句后会得到上段代码去掉最后一句和下面代码是一样的效果

复制代码代码如下:

var a; console log(a);//undefined a=; console log(a);//

然而如果只是这样那么JavaScript作用域问题就很简单了然而由于函数子函数导致的问题使作用域不止这样简单大人物登场——执行环境或者说运行期上下文(好土鳖)执行环境(execution context)定义了变量或函数有权访问的其它数据决定了它们的各自行为每个执行环境都有一个与之关联的变量对象(variable object VO)执行环境中定义的所有变量和函数都会保存在这个对象中解析器在处理数据的时候就会访问这个内部对象

全局执行环境是最外层的一个执行环境在web浏览器中全局执行环境是window对象因此所有全局变量和函数都是作为window对象的属性和放大创建的每个函数都有自己的执行环境当执行流进入一个函数的时候函数的环境会被推入一个函数栈中而在函数执行完毕后执行环境出栈并被销毁保存在其中的所有变量和函数定义随之销毁控制权返回到之前的执行环境中全局的执行环境在应用程序退出(浏览器关闭)才会被销毁

作用域链

当代码在一个环境中执行时会创建变量对象的一个作用域链(scope chain不简称sc)来保证对执行环境有权访问的变量和函数的有序访问作用域第一个对象始终是当前执行代码所在环境的变量对象(VO)

复制代码代码如下:

function a(x y){ var b=x+y; return b;}

在函数a创建的时候它的作用域链填入全局对象全局对象中有所有全局变量

如果执行环境是函数那么将其活动对象(activation object AO)作为作用域链第一个对象第二个对象是包含环境下一个是包含环境的包含环境

复制代码代码如下:

function a(x y){ var b=x+y; return b;} var tatal=a();

这时候 var total=a();语句的作用域链如下

在函数运行过程中标识符的解析是沿著作用域链一级一级搜索的过程从第一个对象开始逐级向后回溯直到找到同名标识符为止找到后不再继续遍历找不到就报错

再来看看闭包

之前博客曾经总结道只要存在调用内部函数的可能 JavaScript就需要保留被引用的函数而且JavaScript运行时需要跟踪引用这个内部函数的所有变量直到最后一个变量废弃 JavaScript的垃圾收集器才能释放相应的内存空间回头再看看好理解了很多父函数定义的变量在子函数的作用域链中子函数没有被销毁其作用域链中所有变量和函数就会被维护不会被销毁

复制代码代码如下:

for(var i=;i<elements length;i++){ elements[i] onclick=function(){ alert(i);}}

这是上篇博客提到过的经典错误每次element点击alert都是length这段代码中为element绑定的click事件处理程序的作用域链是这样的

由于内部函数(click事件处理程序时刻有调用可能)所以其作用域链不能被销毁(更别说本例中i在全局作用域中只能页面卸载是销毁) i的值一直保持for循环执行完后的length值所以每次触发onclick的时候才会alert length

复制代码代码如下:

for(var i=;i<elements length;i++){(function(n){ elements[n] onclick=function(){ alert(n);}})(i);}

为什么这样就行了呢这时候onclick引用的变量变成了n而由于立即执行函数的原因每个onclick函数在作用域链中分别保持着对应的n(~length)这时候就可以了

最后

lishixinzhi/Article/program/Java/JSP/201405/30945

网页制作是什么意思呀!

网页制作网页实际是一个文件,他存放在世界某个角落的的某一台计算机中,而这台计算机必须是与互联网相连的。网页经由网址( URL)来识别与存取,当我们在浏览器输入网址后,经过一段复杂而又快速的程序,网页文件会被传送到你的计算机,然后再通过浏览器解释网页的内容,再展示到你的眼前。要领一:确定网站主题做网站,首先必须要解决的就是网站内容问题,即确定网站的主题。

首先要有一个总的目标,这个网站到底是要做什么。有的要显示自己的设计水平,这就要求页面美观;有的是为了求职而设计的求职网站,这就要求提供足够的信息让别人了解你的工作能力;有的是要为用户服务,这就要求网站有较强的互动性,而本站建设之初的主要目的就是为了本人更好的学习网络知识,只是兴趣而已,本站站名“网页教学网”让人一看就知道是有关介绍网页知识的站点。而申请域名也是相当重要的,,大家都知道web译为网、网页、网络等,j是jiao的第一个字母,x是xue的第一个字母,其实本站是web jiao xue的字母的缩写!当然大家申请注册域名时可以申请自己名字的拼音等!在这里不作过多介绍。

确定好目标之后,还要决定网站的目标观众。其中包括以下几种情况:

1.目标观众的访问速度。很多在线教育网站采用不同的软件制作在线课件,但是视频无论如何在现在是不适合目前中国浏览者的网络带宽,不过提高我们的网络带宽也是一种发展的趋势。

2.目标观众的计算机配置和浏览器版本。

我们在设计网页时,其实已经不必要考虑计算机配置了。需要注意的是在设计中要在不同的浏览器中浏览自己的网页,看看有没有发生变化。

3.插件问题。对于有些软件,比如Flash的插件,现在大部分浏览器都安装有这种插件了,如果网页上播放视频,那么就要考虑浏览器是否需要安装相应的插件,在这时最好在网站中说明并提供插件和播放器的下载。现在好多电影站都做的比较好,它们都提供播放器和插件的下载!

二、新建站点

规划好站点之后,就可以用专门的网页开发软件创建站点了。

在创建站点之前,我们应该首先在我们的磁盘上创建一个文件夹,用于存放站点内的所有资源,当然如果你的站点资源比较丰富这是可以建立子文件夹存放站点内相应的资源。例如:站点文件夹为myweb,子文件夹images用于存放站点内用到的图片,upfiles用于存放上传的文件,admin用于存放站点后台程序等等。创建站点在Dreamweaver软件中操作比较简单,本站也已经提供了相应的视频教程,如果您不熟悉可以去查看下。

现在很多小伙伴喜欢在互联网上找视频资料学习网页制作,但是光看视频你是不可能学会网页制作的,没有人指导你,而且很多视频已经过时了并没有什么用!如果你真的想学习网页制作这门技术,你可以来这个群,前面是6 1 1,中间是四二八,最后是①肆二,在这里有最新的HTML课程免费学习也有很多人指导你进步不需要你付出什么只要你有一颗学习的心就可以了不是愿意学习或者自认不需要学习的就不要加了。刚建立起的站点是空的文件夹,用户首先要设计站点结构。制作专业网站之前要有一个详细的计划,这样虽然会花费一些人力和物力,但总比出现了问题之后再修改要好得多。

在网站规划中一个很重要的问题就是确定站点结构。设计站点结构,就得确定站点子栏目;设计站点结构,就得确定图片、多媒体文件的存放位置;设计站点结构,就得导航条。专业网站中,必须要有导航条。

三、收集资源

确定好站点目标和结构之后,接下来要做的就是收集有关网站的资源,其中包括以下资源:

文字资料:文字是网站的主题。

无论是什么类型的网站,都要离不开叙述性的文字。离开了文字即使图片再华丽,浏览者也不知所云。所以要制作一个成功的网站,必须要提供足够的文字资料。

2.图片资料:网站的一个重要要求就是图文并茂。

如果单单有文字,浏览者看了不免觉得枯燥无味。文字的解说再加上一些相关的图片,让浏览者能够了解更多的信息,更能增加浏览者的印象。

3.动画资料:在网页上插入动画可以增添页面的动感效果。现在Flash动画在网页上应用的相当多,所以建议大家应该学会Flash制作动画的一些知识。

4.其它资料:例如网站上的应用软件,音乐网站上的音乐文件等等。

四、布局页面

设计站点结构和收集了足够的资源之后,就可以开始布局页面了。在Dreamweaver中,可以通过以下手段进行排版:

1.利用表格进行排版:表格主要有三个元素-表格、行和列及单元格,而且表格还可以嵌套,不过在这里建议大家不要把所有的网页都放在一个大表格中,并且嵌套最好不要超过3层,因为如果你那样做了,浏览器解析的时间会增加了,那么当浏览者访问时速度就慢了。

2.利用层排版:层很适合形式自由的排版,现在WEB标准建议排版时抛弃表格,不过如果初学者学习利用层排版时还要学习其它好多相关知识,其中最重要的是CSS和Javascript,使用CSS来辅助层可以对网页实现排版,可以解决表格给我们带来的烦恼。如果你对WEB标准感兴趣,那么你就该好好的学习CSS了!

3.利用布局视图进行排版:在Dreamweaver MX 2004中有专门的布局视图,我们初学网页设计时可以使用它进行排版。

4.利用框架进行排版:它是一种用浏览器窗口,显示多个网页的形式,前几天记得有人在论坛中求,网页格式的课件,网页格式的课件大部分是用框架做出来的。

五、编辑文档与超级连接

经过上面的几个步骤之后,一切准备工作都已经就绪,现在可以象装箱一样把收集到的资料及制作的组件放到页面布局中为它们指定的位置上了。

插入到网页布局之后,文字都是同一种字号,同一种风格,同一种颜色;图片有大有小。所以这时就要对各种元素进行编辑了,例如,改变文本字体、字号、颜色、大小等,对图片进行大小,表格的调整,按钮行为的调整等等!

连接是网页的灵魂。浏览者在浏览网页时,单击网页设置的超级连接可以跳转到相关页面,所以一个好的网页是离不开连接的。

六、发布站点

站点的发布

网站发布就是把网站上传到因特网上,以提供浏览者浏览。上传之前必须检查你的域名和主页空间的申请情况,以及网页和站点的连接情况等。建议大家最好安装IIS,本站内都提供了iis5.01、iis6.0、iis5.0的安装程序。

上传软件一般都使用用FTP,上传到服务器中申请的域名下(具体要看看你申请空间时,人家给你的开通信啊!),上传软件一般有CuteFTP、LeadFTP等

站点的维护

站点发布之后还要经常对站点进行维护。站点维护是指不断优化网站功能和更新网页内容。维护网站的目的是使网站的结构规划合理、内容与形式统一、主题鲜明,经常更新网页内容,让网站与时俱进。

请问javascript中作用域和执行环境是不是一个概念

javascript中作用域和执行环境不是一个概念

执行环境:执行环境是JS中最重要的一个概念;它定义了变量和函数有权访问的其他数据;

全局执行环境:最外围的一个执行环境,根据ECMAScript实现所在的宿主环境不同而不同,在Web浏览器中,全局执行环境被认为是window对象;

作用域链:当代码在环境中执行时,会创建变量对象的一个作用链;作用域链的作用是保证对执行环境有权访问的所有变量和函数的有序访问;

关于javascript中运用域是什么意思的内容到此结束,希望对大家有所帮助。

心花开在草原上广场舞分解动作(心花开在草原上原创广场舞)java编程需要看什么书?学java看什么书