JavaScript基础学习--09运算符、程序流程控制
一、模% i % num ---> 0、1、2……num-1(i比num小取i值,i比num大取减值;比小取小,比大取减)
0 % 3 = 0;
1 % 3 = 1;
2 % 3 = 2;
3 % 3 = 0;
4 % 3 = 1;
5 % 3 = 2;
1 var j = 0; 2 for(var i = 0; i < arr.length; i++){ 3 aLi = document.getElementsByTagName('li'); 4 aLi[i].style.background = arr[i%arr.length]; //[i%arr.length]会遍历0~arr.length,例如:0、1、2、0、1、2、0、1、2…… 5 6 //以上写法等同于: 7 if(j >= arr.lenth){ 8 j = 0; 9 } 10 arr[i].style.background = arr[j]; 11 j++; 12 }
二、运算符
1、== 等于,只判断值是否相等,不管类型:'3' == 3 //true
2、!=
3、=== 全等,先判断类型,如果类型不相等,直接报错,不进行下一步值的判断;如果类型相等再判断值是否相等 '3' === 3 //false
4、!==
5、&& var a = 12 < 31 && 20 // a = 20
6、|| var a = data || 12 //如果data不等于0(为真),则a = data; 否则 a = 12; //假设两边都不靠谱,则false
7、! var a = !true // false var a = !200 // false --》 ! 具有数据类型转换的功能,转化为boolean true/false
反选:
for(var i = 0; i < aInp.length; i++{ if(aInp.cheched){ aInp.checked = false; }else{ aInp.checked = true; } // 简单写法: aInp[i].checked = !aInp[i].checked; }
8、三元运算 x ? y : z;
流程控制
一、判断
1、if
2、switch
switch(str){ case 'js': alert('js'); break; case 'html': alert('html'); break; default: alert(str);
}
3、只有一个 if + else 的时候,可以改利用三元运算符判断:12 < 45 ? alert(123) : alert(456); || dir = parseInt(getStyle( obj, attr )) < target ? dir : -dir;
4、只有一个 if 的时候,可以改利用“且”运算符(&&):callback && callback();
二、判断
1、for
for(var i = 0; i < 3; i++){ alert(i); }
2、while
var i = 0; while(i < 3){ alert(i); i++; }
3、continue 和 break
for(var i = 0; i < 10; i++){ if(i === 4){ //continue; 跳过本次循环,不往下执行,但是继续执行 i++ 之后的循环 //0 1 2 3 5 6 7 8 9 break; 跳出for循环,结束剩余for循环 //0 1 2 3 } alert(i); }
三、真假的问题 从类型出发(数字类型、字符串、布尔、函数、对象(elem、[]、{}、null))、undefined
1、真
1.1 非0的数字(包括负数等等)
1.2 非空字符串(包括空格等等)
1.3 true
1.4 函数
1.5 能找到的元素
1.6 所有数组(数组相当于仓库,都是存在的,包括空数组)
1.7 json(同数组,包括空json对象)
2、假
2.1 0
2.2 NaN 例如 123-'abc'
2.3 空字符串 ''
2.4 false
2.5 不能找到的元素
2.6 null
2.7 undefined
原创博客,欢迎讨论,转载请注明出处、链接