关于视频中的一句代码
来源:4-2 CSS动画-命名约定以及测试脚本
weixin_慕的地5241954
2019-09-11 20:51:42
var isSetAnimateClass = false; if(isSetAnimateClass === false){ for (var i = 0;i < animateElements.length;i++){ var element = document.querySelector(animateElements[i]); //console.log(element) var baseCls = element.getAttribute('class'); //console.log(baseCls) element.setAttribute('class',baseCls +' '+animateElements[i].substr(1)+'_animate_init'); //setAttribute这里的tt写成tr了,要注意,写错好几次了 isSetAnimateClass = true; return ; } }
var isSetAnimateClass = false; // 是否设置动画初始化样式
if(isSetAnimateClass === false)
这两句浏览器是如何判断它的布尔值的? 不明白,最好能结合例子解释详细点,谢谢。
3回答
同学你好,
1、这三个if判断中并没有return返回内容,return后面是空的:
也就是无返回值,也可以起到结束代码的作用。setAttribute方法也没有返回值,所以不知道同学说的返回值指的是哪里。这行代码:
element.setAttribute('class',baseCls +' '+animateElements[i].substr(1)+'_animate_init');
只是将原来的类名加上修改之后的类名重新设置给元素。
2、for循环没有返回值的哦。遍历animateElements数组,可以在数组中每一个元素上设置类,不只是最后一项。
自己可以测试理解下,祝学习愉快!
好帮手慕慕子
2019-09-12
同学你好,
是的, 是可以使用同学写的方法替代的,
修改之后,元素的类名是原来的类名加上修改之后的类名。 关于三段代码可以参考下图注释理解
这一部分的逻辑可能会有些复杂, 同学可以多看几遍视频, 跟着视频写一写代码, 根据代码实现的效果帮助自己更好的理解哦
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
好帮手慕慕子
2019-09-12
同学你好,首选, 我们要了解, js语法规定, 通过运算符(===)判断左右符号左右两边的值是否相等, 如果相等返回true, 不行等返回false。
然后,我们来分析同学粘贴的这两句代码
var isSetAnimateClass = false; 这句代码是将isSetAnimateClass的值设置为布尔值false
if语句中的isSetAnimateClass === false 这句代码是通过等于运算符(===)判断isSetAnimateClass 是否等于false,
(1)如果isSetAnimateClass 的值false, 两边的值相等, 那么最终返回的结果就是true, 执行if后面花括号中的代码
(2)如果isSetAnimateClass 的值true, 两边的值不相等, 那么最终返回的结果就是false, 跳过if后面花括号的代码。
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
相似问题