JS中的循环和判断
今天看了一下JS中常用的判断和循环,有基础的小伙伴就当复习了,现在有很多提供好的内置API可以实现循环从而提高性能,所以在实战开发中,一般情况尽可能使用内置API来完成循环,短路判断也是非常使用,在实战中尽可使用,这是你提高你代码的优雅性,下面的是我加上我个人的理解,帮助小伙伴更好的理解JS循环和判断:
JS常用判断和循环:
switch case 判断(只能应用于等于什么值做什么事情,不能用户大于或者小于啥值做啥)每一种情况结束都要设置break(当此条件成立并处理完事情后,通知代码不在向下执行),default:等价于else,而且最后一个判断结束无需设置break,每一种case情况都是基于===进行比较的(严格比较,需要保证数据类型的一致)
let x=10;
switch(x){
case 1:
x+=1;break;
case 5:
x+=2;break;
case 10:
x+=4;break;
defult:
console.log(3);
}
break:循环体中一旦遇到break,整个循环都结束,下面代码不在执行,步长累计也不再执行
continue:循环体中遇到continue,结束本轮循环,下一轮继续,下面代码不在执行,但是步长累计会执行
遍历(循环、迭代)数组中的每一项:
var arr=[10,20,30,40];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
for循环:
1.创建循环初始值
2.设置(验证)循环执行的条件
3.条件成立执行循环体中的内容
4.当前循环结束执行步长累计操作
先定义初始值,条件成立,就执行循环体里面的操作,循环完毕后,在执行操作计数,满足就继续,不满足就结束
for(初始表达式;判断表达式;自增自减运算)
var ary = [1,2,3];
for(var i= 0;i<ary.length;i++){
console.log(ary[i]);
}
遍历对象基于for in循环:以任意顺序遍历一个对象的除Symbol以外的可枚举属性(还可以捕获到自己定义在原型上的属性,一般不会遍历数组,多用于对象)
for in 遍历的时候,是优先按照从小到大的机制遍历数字属性的,优先遍历属性名为数字的
var obj={
name:'Jone',
age:'12'
};
for (var key变量 in obj对象){
// 创建变量(存储属性) in 对象,当前对象中有多少个可枚举的属性,就循环多少次
// key变量存储的是每一循环的属性名
//obj[key]获取key变量对象属性名的属性
//obj.key 或者 obj['key']获取属性名叫key的属性值
//会把所属类原型上自定义的属性方法也遍历到
console.log(` ${key} : ${obj[key]}`);
}
for(let k in obj){
// k 是一个字符串
if( obj.hasOwnProperty(k)) console.log(k);
// 只输出obj 属性内的,自定义加的不会被获取到
}
for in:
var obj={
name:'Jone',
friends:'wangp,wangge',
3:300
};
//for(var 变量(key)in 对象)
//对象中有多少组键值对,循环就执行几次(除非break结束)
for(var key in obj){
//每一次循环key变量存储的值:当前对象的属性名
//获取属性值:obj[属性名] => obj[key]
console.log('属性名:' + key + '属性值:' + obj[key]);
for ...of :在可迭代对象(包括Array,Map,Set,String,TypedArray,arguments对象等)遍历的是属性值
1、获取的是属性值
2、不会遍历原型上公有的属性方法(包含自定义的)
3、只能遍历可被迭代的数据类型值(Symbol.iterable):Array, String, Arguments, NodeList, Set, Map等,普通对象是不可被迭代的数据,不能用for of循环
for (var item of iterable){
//变量存储的是属性值
console.log(item);
}
while语法:
while(条件){
code;
}
条件成立,里面的代码就会一直反复执行,没次执行前,都要对条件重新进行判断,直到条件不成立,循环结束
var i = 0;
while (i<10){
console.log(i);
i++;
}
do{ code}while(条件); //先执行一次代码,然后进行条件判断,成立则继续执行循环
//遍历数组中每一项的方法
forEach:
作用:遍历数组中的每一项
参数:函数
返回值:undefined
改变原数组:不变
var ary=[1,2,3,4,5,6,3,35,,8,9];
var res=ary.forEach(function(item,index){
alert(item);
}
console.log(res);
ary.forEach((item,index)=>{
//数组中有多少项,函数就会被默认执行多少次
//每一次执行函数:item是数组中当前要操作的这一项,index是当前项的索引
console.log('索引:' +index+'内容'+item);
});
map():与forEach类似,但是map有返回值,是一个新数组,新数组是由每一个回调函数执行时候的返回值决定的
forEach没有返回值,map有返回值是一个新数组,新数组是由每一个回调函数执行时候的返回值决定的
- 点赞
- 收藏
- 关注作者
评论(0)