- 巧用逻辑表达式&&和||应对浏览器兼容问题,可以减少if判断语句的使用;
- 通过event.target.tagName找出的标签名为大写形式,而通过event.target.className找出的标签名为小写形式;
- 对象.style.样式:该方法设置的是行内样式,其优先级较高会覆盖掉除标明important外的对应样式,可以通过将其设置为空串清除该行内样式;
-
关于块作用域:
如下,无论点击哪个按钮,alert输出的结果都是Num,解决问题的方法目前学习的有两种:for (var i = 0; i < Num; i++) { btn[i].onclick = function () { alert(i); }; }1、为btn设置一个属性,用来存储i的值,即通过全局作用域来保护i的值;
2、定义一个函数用来存储btn的onclick事件,并传入实参i,即通过一个函数作用域来保护i的值(闭包); - 每使用一次对象.style.样式都会使浏览器重新渲染,多次使用会降低代码效率,可以通过修改对象的className一次性增添多个样式声明;
- undefined未定义指定义了变量但未定义类型,具体表现为定义但未赋值的变量,而null指定义了且类型为null,具体表现为定义且赋值为null的变量;
- 变量的回收是指变量被浏览器的垃圾回收器回收,但没有立刻清除,回收器会定期进行空间释放;而变量的释放指变量所占的栈内存空间被清除,通常体现为函数执行完毕后变量空间被自动释放,但变量所指的对象则暂时被回收器回收;
- 变量和函数提升:变量提升在前,函数提升在后;
-
闭包的作用:延长局部变量的生命周期,但没有及时释放可能会造成内存浪费。