360面试题综合练习题
|
|
图形分析24
综合实战题(实现累加的多种方式)
[x] (推荐)利用自定义属性存储
1234btn.count=0;btn.onclick=function(){spannum.innerHTML=++this.count;}
[x] 利用全局作用域不销毁的原理,把需要累加的数字定义为全局的变量
弊端:为防止全局变量间的冲突,一般禁止或减少使用全局变量的如下
|
|
- [x] 自己形成一个不销毁的私有作用域,来保存需要累加的数字
- 弊端:不销毁的私有作用域,有点占内存
第一种不销毁的私有作用域(函数执行返回引用数据类型、且在函数外被接收)
项目中常用
1234567btn.onclick=(function(){var count=0;return function(){//返回引用数据类型count++;spannum.innerHTML=count;}})();第二种不销毁的私有作用域(在私有作用于下给DOM元素绑定事件)
1234567~function(){var count=0;btn.onclick=function(){count++;spannum.innerHTML=count;};}();//自执行函数形成的私有作用域不销毁[x] 利用innerHTML处理(每次点击先从页面获取最新的值,然后累加,最后把累加结果重新放回去)
弊端:每次需要把页面内容先转化成字符串,再累加,再重新添加,当重新添加的时候浏览器都要从新渲染一下;12345btn.onclick=function(){spannum.innerHTML++;//++默认转化成数字类型//注意:innerHTML获取的是页面内容的返回字符串//所以spanname.innerHTML=spanname.innerHTML+1;是错误的};