一.js中闭包的优点和缺点:
优点:1.保护函数内的变量安全
2.在内存中维持一个变量(用的太多就变成了缺点,占内存) ;
3. 逻辑连续,当闭包作为另一个函数调用的参数时,避免你脱离当前逻辑而单独编写额外逻辑。
4. 方便调用上下文的局部变量。
5. 加强封装性,可以达到对变量的保护作用。
缺点:1.常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。
2.还有有一个非常严重的问题,那就是内存浪费问题,这个内存浪费不仅仅因为它常驻内存,更重要的是,对闭包的使用不当会造成无效内存的产生。
闭包的特性:
1. 函数嵌套函数
2. 内部函数可以访问外部函数的变量
3. 参数和变量不会被回收。
4. 闭包的典型框架应该就是jquery了。
二:如何计算css样式的优先级?
首先:css的优先级比较:
!important>内联样式>id>class>标签>通配符>继承>默认
第一优先级:!important会覆盖页面内任何位置的元素样式
1.内联样式,如style=“”,权值为:1000
2.ID 选择器,如:#id,权值为:0100
3.代表类、伪类、属性选择器,权值为:0010
4.代表标签、伪元素选择器,权值为:0001
5.通配符、子类选择器、兄弟选择器。权值为:0000
6.继承的样式,没有权值
三.在正则表达式中,正则表达式的构造函数var reg=new RegExp("xxx")与正则表达字面量var reg=//是有一定的区别的。例如:当使用正则表达式的时候有的会有一些特殊的字符,如果利用RegExp()构造函数是不仅需要利用转义符号("\"),并且还需要利用双反斜杠。