JavaScript面试后反思.docVIP

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

JavaScript面试后的反思(1) 2012-07-06 13:54 nowamagic MXRIA HYPERLINK /art/201207/346767.htm \l commment#commment \t _self 我要评论(0) 字号: HYPERLINK javascript:setfont(12); \t _self T | HYPERLINK javascript:setfont(16); \t _self T 为什么这么说,前些日子收到面试邀请,那就去试试呗,有几年没有面试过了吧。和面试官坐在沙发上,聊天式的他问我答,以下就是几个javascript方面的问题。 AD: HYPERLINK /cloud2013/ \t _blank 2013云计算架构师峰会精彩课程曝光 写此文目的是为了让更多的程序员理解javascript的一些概念,对,是理解,而不是了解。我们已经了解得够多了,该是向深入理解的方向靠拢的时候了。 为什么这么说,前些日子收到面试邀请,那就去试试呗,有几年没有面试过了吧。和面试官坐在沙发上,聊天式的他问我答,以下就是几个javascript方面的问题: 请创建一个对象,包括几个公有属性,接下来是为对象创建一个公有方法,然后为对象创建几个私有属性,一个私有方法。 说实话,这几个问题我默名其妙,要是他让我用jquery写个拖动插件什么的,我估计我能写挺好,原生的javascript,晕,虽然我看过jquery源码解读,但这些基本概念要命。 本文的例子输出使用如下方法,便于查看: function dwn(s){document.write(s+br /);} function 从一开始接触到js就感觉好灵活,每个人的写法都不一样,比如一个function就有N种写法,如: function showMsg(){} var showMsg = function(){} showMsg = function(){} 似乎没有什么区别,都是一样的嘛,真的是一样的吗,大家看看下面的例子: ///--------------------------------------------------- //函数定义:命名函数(声明式),匿名函数(引用式) //声明式,定义代码先于函数执行代码被解析 function t1(){dwn(t1);} t1(); function t1() { dwn(new t1);} t1();//引用式,在函数运行中进行动态解析 var t1 = function(){ dwn(new new t1);} t1(); var t1 = function() {dwn(new new new t1);} t1();//以上输出:new t1,new t1,new new t1,new new new t1 可能想着应该是输出t1,new t1,new newt1,new new new t1,结果却并不是这样,应该理解这句话:声明式,定义代码先于函数执行代码被解析。 如果深入一步,应该说是scope链问题,实际上前面两个方法等价于window.t1,可以理解为t1是window的一个公有属性,被赋了两次值,以最后一次赋值为最终值。 而后面两个方法,可以理解为是t1是个变量,第四个方法的var去掉之后的结果仍然不会改变。 然而,当第四个方法改成function t1(){}这样的声明式时,结果变成了new new new t1,new new new t1,new new t1,new new t1前面两个按照我的理解可以很好的理解为什么是这个答案,第三个也可以理解,但是最后一个输出让我比较纠结。 另外匿名函数还有(function(){...})()这样的写法,最后一个括号用于参数输入。 还有var t1=new function(){..}这样的声明,实际上t1已经是一个对象了。 var t2 = new function(){ var temp = 100; //私有成员 this.temp = 200; //公有成员,这两个概念会在第三点以后展开说明 return temp + this.temp;} alert(typeof(t2)); //object alert(t2.constructor()); //300 除此之外,还有使用系统内置函数对象来构建一个函数,例: //这个位置加不加new结果都一样,WHY var t3 = new Function(var temp = 100; this.temp =

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档