草庐IT

JavaScript 全局变量和自调用匿名函数

所以我一直在阅读Javascript-TheGoodPartsCrockford指出的一件事是Javascript中全局变量的使用弱点,如果您的产品以某种方式扩展,并且它依赖于“全局”变量,则可能会无意中设置它。这一切都很好,我理解以其他方式(例如闭包)保护变量的优缺点。然而,我做了一些思考,并将代码包装在一个函数中,如下所示:(function(){varx='meh';})();(function(){alert(typeofx);//undefined})();赋予它变量范围,从而防止变量的交叉污染。我不确定这种方法是否有明显的缺点,并且想知道社区是否有任何意见,或者我是否只是想

JavaScript 闭包与全局变量

哪个是最佳实践,哪个会带来更好的性能?更新:jsperf.com报告说(a)更快@http://jsperf.com/closure-vs-global-variablea)使用闭包varobj={init:function(){varself=this;$('#element').click(function(){self.clickEvent();});},clickEvent:function(){this.miscMethod();},miscMethod:function(){}};b)使用全局变量varobj={init:function(){//removedself=t

javascript - 从嵌入式 iframe 中获取全局变量

假设一个HTML页面(Page.htm)包含以下...varvara='varA';现在这个页面从另一个页面加载到iframe中......在父页面中,我想从Page.htm中获取全局“vara”的值。以下行均无效...window.frames['child_frame'].window.vara;window.frames['child_frame'].window['vara'];window.frames['child_frame'].contentWindow['vara'];//infactcontentWindowreturnsundefined!!如有任何帮助,我们将不

javascript - 全局传递 xhr onload 函数的值

在我正在创建的应用程序中,我有以下XMLHttpRequest,我试图将xhr.onload()中的data结果传递到一个数组中这是在同一个父函数中创建的。varurl='http://api.soundcloud.com/resolve.json?'+resource+'&'+CLIENT_ID;varxhr=newXMLHttpRequest();xhr.open('GET',url,true);xhr.onload=function(){vardata=JSON.parse(xhr.responseText);console.log(data.permalink_url);};x

javascript - 在 coffeescript 中声明全局变量

我将GemCoocon用于嵌套表单。如果选中.checkBoxCurrentJob,我需要隐藏#end_date_job_portfolio字段。问题是,如果用户没有单击添加新的嵌套表单,jQuery将看不到这些标签,因为这些标签还不在文档中。为此,我使用了cocoon:after-insert。这是我的脚本:$(document).ready->checkbox_date=""end_date=""$('.experiences').on'cocoon:after-insert',->checkbox_date=$(".checkBoxCurrentJob")end_date=$('

javascript - 在 SPA VueJS 中全局声明 mapState 和 mapMutations

我正在创建一个基本的SPA,但碰巧我用Vuex管理的状态和那里的突变都很好,但是在我想使用mapState和mapMutations的每个组件中,我必须在本地导入它们。import{mapState,mapMutations}from'vuex';exportdefault{computed:mapState(['isLoggedIn']),methods:{...mapMutations(['logout'])}}这是正确的做法吗?或者如何在全局声明它们并避免在每个组件中导入,以便如下所示?exportdefault{computed:mapState(['isLoggedIn'])

javascript - 为什么我的 JavaScript 提升局部变量返回未定义但提升全局变量返回空白?

这个问题在这里已经有了答案:WhydoIgetthevalue"result"forthisclosure?(3个答案)关闭8年前。作为我学习JavaScript的一部分,我尝试编写代码来演示我正在学习的概念;今天我在学习提升变量。这是我写的代码:console.log("A:Mynameis"+name);functionhappy(){console.log("1:Iam"+feeling);varfeeling="happy";console.log("2:Iam"+feeling);}happy();varname="Jim";console.log("B:Mynameis"+

javascript - Bower 和 grunt 是全局还是本地?

我们有nvm不全局安装任何东西,因为我们可能同时处理许多不同的项目,这些项目需要相同库的不同版本。但是bower和grunt呢?在Internet的任何地方我都看到npminstall-gbower我知道grunt前段时间分为grunt和grunt-cli应该使全局包更稳定。但是bower呢?使用此类包的最佳实践是什么?如何避免潜在的版本冲突?或者也许我夸大了这个问题,我应该简单地使用-g选项? 最佳答案 剧透-全局。Bower和grunt是开发工具-Bower在每个前端开发过程中都会用到,因此将其用作本地包是错误的。Grunt拆分

javascript - 如何全局定义套接字变量

我的socketio文件中有这段代码,在这里我可以简单地使用socket。import_from'lodash'importmongoosefrom'mongoose'exports.register=(server,options,next)=>{vario=require('socket.io')(server.listener)io.on('connection',async(socket)=>{//hereIcanusesocket.emit()andall})next()}exports.register.attributes={name:'socket'}现在,我需要使用i

javascript - 命名闭包会污染全局/窗口对象吗?

根据thisnodestyleguide,给闭包一个名字是一个好习惯:Rightreq.on('end',functiononEnd(){console.log('winning');});Wrongreq.on('end',function(){console.log('losing');});不过,我习惯了想functionsomeName(){someStatements();}...语法作为创建全局变量的东西,someName或window.someName用于该函数。这真的是一个好的实践,还是一个非常糟糕的风格指南? 最佳答案