
正文
js减少全局变量,js避免全局变量污染
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在几个js文件中怎么控制全局变量
JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍。使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量。
那么基于这样的情况,两个 JS文件里,如果先引入页面的JS文件里定义了全局变量,那么第二个引入的JS文件,对于前一个JS所定义的全局变量,是可以进行修改。
有三种方式声明全局变量:方法1,在方法块儿外拿var声明: var a=1; function(){ //我是代码 }方法2,不实用var,进行隐式声明: b=1; function(){ c=2; //b和c都是全局变量。
引入该js文件 在当前页面的script中操作该js文件中的变量进行修改。
function setValue(val){ obj=val;} function getValue(){ return obj;} setValue(123);alert(getValue()); 变量分为局部与全局,局部变量又可称之为内部变量。
看看不同情况输出的num值。其实就是你把num变量放在函数中,是局部变量,每次单击的时候,都会重新赋值0再开始运行下面的代码,所以是可以重复点击。
相关问答
Q1: JS函数之---立即执行函数(IIFE)
立即执行函数的正确写法,让js引擎认为这是一个表达式 立即执行函数不能再外面再被调用,执行完之后已经被立即销毁了。
立即执行函数立即执行函数,即ImmediatelyInvokedFunctionExpression(IIFE),正如它的名字,就是创建函数的同时立即执行。
使用console.log调用时,根据参数1和2 输出“3”。
这个写法被叫做 IIFE(Immediately Invoked Function Expression)立即执行函数表达式。也有人叫他 self executing anonymous function 或 self invoking function 之类的。
第二个function是第一个function的参数。
dest — 编译完的文件需要被存放的路径。format — Rollup支持多种输出格式。因为是要在浏览器中使用,需要使用立即执行函数表达式(IIFE)[注1]sourceMap — 调试时sourcemap是非常有用的。
Q2: js写代码时是不是要避免使用全局变量啊
代码要保持独立,不要使用可能与其他脚本冲突的全局变量。(可用对象字面量) 注释代码功能,因为将来维护代码的可能就是你自己。
一两个全局变量没什么大问题,你几乎不可能做到零全局变量(除非你的JS代码不与任何其他JS代码产生联系,仅仅做了些自己的事情,这种情况十分少见,不代表没有)。
避免全局变量,因为全局变量容易发生名称上的冲突,可维护性不好。
所以空间利用率比较低,大量的全局变量,很快就会把内存用光,所以要少用全局变量;全局变量由于每个函数都可以使用,所以任何一个函数的修改,如果修改了全局变量,都有可能影响到其他函数,所以不利于调试。
尽量选用局部变量而不是全局变量。局部变量的访问速度要比全局变量的访问速度更快,因为全局变量其实是window对象的成员,而局部变量是放在函数的栈里的。 尽量少使用eval。
而且使用React时,最佳实践就是使用ES6模块吧。不推荐代码水平对齐Google的代码规范允许但不推荐对代码进行水平对齐。即使之前的代码中做了水平对齐的处理,以后也应该避免这种行为。
js减少全局变量的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于js避免全局变量污染、js减少全局变量的信息别忘了在本站进行查找喔。






