批改状态:合格
老师批语:
总共有三个数组类型:1. 多维数组2. 对象数组3. 类数组// 1. 多维数组const arr1 = [[1, '西瓜', 10],[2, '苹果', 20],[3, '黄桃', 30],]// arr1.forEach(function (item, key, arr1){// console.log(item,key,arr1);// })// arr1.forEach(function (item){// console.log(item);// })// 用箭头函数缩写一下// 1. 去掉function, 括号后面增加=>,// 2. 只有一个语句,可以删除大括号arr1.forEach ( item => console.log(item))console.log('-----------------------------');// 2. 对象数组// 成员是一个对象字面量,前后端分离开发中,服务器返回JSONconst fruits = [{id:1, name: '西瓜', price:10},{id:2, name: '苹果', price:20},{id:3, name: '黄桃', price:30},]fruits.forEach ( item => console.log(item))// 3. 类数组// 不是class, 类:类似,像,类数组-> 类似一个数组,但不是数组// 仍然是一个对象,用对象来模拟一个数组// dom编程,浏览器中的对象const likeArr = {0:'admin',1:'admin@qq.com',2:'21343222',length:3}// 类数组特征:// 1. 由0开始的递增的正整数的索引/属性// 2. 必须有'length',表示成员数量/数组长度// console.log(likeArr);// likeArr.forEach(item => console.log(item))// 将类数组转为真正的数组// console.log(Array.from(likeArr));// [ 'admin', 'admin@qq.com', '21343222' ]Array.from(likeArr).forEach(item => console.log(item))// 4. 函数数组// const events = [// function(){// return '准备发射'// },// function(){// return '击中目标'// },// function(){// return '敌人投降'// },// ]// 箭头函数const events = [() => '准备发射',() => '击中目标',() => '敌人投降',]// ev 是一个函数,要调用ev()// events.forEach(events => console.log(events()))events.forEach(ev => console.log(ev()))// 5. 对象方法// 对象的方法中,其实就是属性,只不过他得值是一个匿名函数const user = {uname: '管志岗',email: 'admin@qq.com',getUser: function() {// this 当前对象的引用, user// 模板字符串要用反引号``,可以打出内容,''这个是打印的模板字面量${user.uname}// return `${user.uname}: (${user.email})`return `${this.uname}:(${this.email})`},}console.log(user.getUser());console.log(user.email,user.uname);console.log('-------------------------');//用数组调用const user1 = ['管志岗','admin@qq.com',function() {return `${this[0]}:(${this[1]})`},]console.log(user1[2]());console.log('---用数组调用---');// 数组与对象的区别:// 数组与对象并无本质区别,仅仅是语法上的不同// 仅仅是成员声明方式和访问方式不同// 显然对象的语义化更好// 所以,可以将数组,看成对象的一个子集或特例// 函数的本质// 函数是js中,最重要的数据类型// 函数可视为一个普通的值// 函数可以充当返回值,参数等,凡是用到值的地方// 如果没有return,则返回undefined
// todo 流程控制:分支// 1. 顺序: 默认,与源码书写循序一直,不必再浪费时间// 1. 单分支// 2. 双分支(简化三元)// 条件if (true) {}// 1. 单分支if (true) {console.log("success");}console.log("----------------------");// 2. 双分支: true/defaultif (!true) {console.log("success");} else {console.log("fall");}// else : 不一定是 false,只要不满足条件就执行这里// else :默认分支// 三元进行简化let success = falselet result = success ? "成功" : "失败";// if (status) {// return "成功";// } else {// return "失败";// }console.log(result);console.log("-------------------------");// 3. 多分支// if-else 嵌套 用switch来替换更好grade = "C";// if (grade == "A") {// console.log("优秀");// } else if (grade == "B") {// console.log("良好");// } else if (grade == "C") {// console.log("合格");// } else if (grade == "D") {// console.log("补考");// } else {// console.log("非法输入");// }// grade = "d";switch (grade) {case "A":console.log("优秀");break;case "B":console.log("良好");break;case "C":console.log("合格");break;case "D":console.log("补考");break;default:console.log("非法输入");}// 上面是单值,区间判断let score = 75;// switch 是true才能进入代码体switch (true) {case score >= 80 && score <= 100:console.log("优秀");break;case score >= 60 && score <= 79:console.log("及格");break;case score >= 40 && score <= 59:console.log("差等");break;case score >= 0 && score <= 39:console.log("补考");break;default:console.log("非法输入");}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号