
获得徽章 1
- Day18!
重学排他思想~
Tab栏效果切换是常见的功能需求,它实际上运用的就是JS的排他思想。
那么,什么是排他思想呢?
简而言之,就是在监听成立时,先把所有的样式清除为空,随后按照需求添加需要的样式。
-------------------------------------------------------------------------------------------------------
排除所有元素(包括自己),接着再设置自己或者对应的元素
使用方式
1.干掉所有人 使用for循环 remove样式2.复活他自己setclass 通过this或者下标找到自己或者(对应)的元素,然后处理对应元素,若对应元素也有则继续排他思想,可以封装一个拍他思想的函数在此处直接调用即可。最好在这个函数的末尾return一个函数的返回值,这样就达到了tco优化。展开评论1 - Day9 !👀学习学习。
javascript的逻辑运算符其实更像一种选择器,会选择左右一个值作为返回值,而不是返回true或false
逻辑运算符的关联性和优先级:
· &&:采取左关联,优先级高于|| 高于 ?
· || : 采用左关联,优先级低于&&高于?
· ?: 采用右关联,优先级低于前两者。
验证:当两个逻辑运算符,三个操作数时,就会有运算符表达式的执行顺序(优先级)
var a = 42;
var b = ‘foo’;
var c = false;
a&&b||c; //foo
a||b&&c;//42
·因为&&的优先级高于||,所以结果不言而喻。
tip:&&运算符有一个很好的特性,即短路因为当左边表达式为假时,就不会对后边的表达式进行运算。一般用于 if(opts&&opts.cool),当没有opts时,表达式opts.cool会出错,这样用逻辑运算符连接,就起到了保护作用,同样也起到了不必要的代码运算。
·当三种逻辑运算符结合在一起使用就会牵扯优先级,其实更可以认为是更强的绑定。以下是示例可以解释各自的关联性,及优先级。
实例2:console.log(a && b || a || c && b ? b || c && a ? a || b : a && b : a && b);
解析:
步骤:1.(a && b) || a || (c && b) ? (c && a)? (a || b) : (a && b) : (a || b)
2.(a && b) || a || (c && b) {? (c && a)[? (a || b) : (a && b)] : (a || b)}
3. foo ? foo ? 1 : foo : foo
4. foo ? 1 : foo
5. 1展开评论1