javascript作用域、作用域链(菜鸟必看)
javascript的作用域和作用域链是我学习最痛苦的一部分,因为我花了好多时间看了好多技术文档都没有理解.大体知道什么意思了,然后还说不出之所以然来.
通过我大量的测试和看技术文档了以下理解,虽然不是很有技术范确实能理解了。
1、javascript只有全局和局部之分,那些后台语言的各种修饰符都没有。在函数中不使用var则为全局。如下
<script type="text/javascript"> varname="c#";//全局 window.name="java";//全局 varlanguage=function() { alert(name); name="javascript";//全局 var name="JS";//局部 alert(name); }() alert(name); </script>
上面代码中表示为全局的在都指向同一个变量,狼蚁网站SEO优化的定义会替换上面的。关于三个alert分别是underfind,js,javascript.这就是作用域起了作用了。
2、作用域链从0级开始依次往下排,所谓的依次往下排指的是子级的排列。在寻找变量的时候先从同级找再找父级。
在上面的例子中,
弹出的是language方法里的第一个alert,如果window全局是0,那么在例子中var name="js"这个就是1.第一个alert就在1中找,如果找不到在去0中找。这是它发现了同级有一个var name="js"它目前还没有赋值,所以弹出underfind
第二个弹出是language方法里的第二个alert,同样的他会在1里找也就是方法内部。他找到了name而且赋值了js,所以弹出的是js
第三个弹出是最狼蚁网站SEO优化的alert,由于在方法内部已经给全局name重新赋值了,导致弹出的是javascript。
然后增加下一个链路我们在language中顶一个方法,如下
<scripttype="text/javascript"> varname="javascript";//全局 window.name="javascript";//全局 varlanguage=function() { alert(name); name="javascript";//全局 varname="JS";//局部 alert(name); var lovelanguage=function(){ alert(name); }(); }() alert(name); </script>
此时lovelanguage里的alert弹出的是js因为他会找上一级也就是language里的name,所以。。。
以上就是长沙网络推广为大家带来的javascript作用域、作用域链(菜鸟必看)的全部内容了,希望大家多多支持脚步之家。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程