JavaScript几个重要的特性学习
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript几个重要的特性学习,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1703字,纯文字阅读大概需要3分钟。
内容图文
一.作用域
表示变量或函数起作用的区域,指代了它们在什么上下文中执行,Javascript总作用域一共有两种:全局作用域和本地作用域,在Javascript中本地作用域是按照函数来区分的。
var global = "11"; //全局作用域function fun() { var local = "22";//本地作用域1 } function fun2() { var local2 = "22";//本地作用域2for (var i=0;i<100;i++) { //本地作用域2 } }
JavaScript的作用域和C#的或者Java的作用域不是太一样,C#和Java中一个"{}"就是一个作用域,而JavaScript本地作用域是用函数来区分的;全局作用域是以window对象来区分的。
二.作用域链
与"“原型链”类似,Javascript的作用域链也是按有顺序查询的。在访问变量时,先查看本地作用域是否有此变量,如果没有则依次向上一级作用域查找直到全局作用域。如果全局作用域也没有此变量,那么将会返回“undefined”。
function A() { name = "全局变量"; this.local = "局部变量"; } var a = new A(); alert(name);//全局变量 alert(a.local);//局部变量 alert(a.age);//undefined
三.闭包
表示能访问和操作其他内部作用域的变量的表达式(通常是函数)。用简单的语言描述就是:能操作其他本地作用域变量的函数就是闭包。还是看代码:
function fun() { var i = 1; returnfunction() { i++; console.log(i); } } var closure = fun(); closure(); //2 closure(); //3
请先按Java语言或其他非闭包语言的逻辑思考。当fun函数执行完毕时,其内部变量i应该会被释放,当closure函数再此执行并调用i时输出错误(因为i未被声明)。但是在Javascript中却打印出了值,这一切都归功于闭包。在执行fun()函数时,闭包就被创建。此时i并没有被释放,closure依然可以被访问到。
另外注意闭包的本质是表达式(通常是函数),所以闭包是在函数生成时定义的。(上面代码的第3行定义闭包)!
四.闭包的作用
闭包最大的作用就是来阻止外部程序随意访问内部变量,只能通过提供的接口来访问和操作。如下面一个记数器的实现:
var counter = (function() { var i=0; return { add:function() { i++; returnthis; }, get:function() { return i; } } })(); counter.add().add().add(); console.log(counter.get()); //3
如果不用闭包直接暴露变量,那就会出现如下的情况产生bug:
i=0; function add() { i++; } add(); add(); i+="1"; add(); console.log(i);//22
五.上下文
又可以理解为上下文对象,表示当前代码执行时所处的环境。即是this变量所指代的对象;这么理解比较困难,直接看个例子:
function Test() { console.log(this); } Test(); //windownew Test();//Object
在执行Test()时,此时的上下文对象是window,即Javascript的全局对象!在执行new Test();时新建了一个Object,此时执行Test函数的上下文对象就是Object。
本文参网上搜索的内容,如有侵权,请联系我。
原文:http://www.cnblogs.com/codeinspiremyselft/p/3544594.html
内容总结
以上是互联网集市为您收集整理的JavaScript几个重要的特性学习全部内容,希望文章能够帮你解决JavaScript几个重要的特性学习所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。