批改状态:合格
老师批语:
let a = 1;let b = a;console.log('a=%d,b=%d', a, b);// 更新a,b不受影响a = 2;console.log('a=%d,b=%d', a, b);

let obj1 = {a: 1,b: 2};console.log(obj1);let obj2 = obj1;console.log(obj2);// 更新obj1obj1.a = 10;obj1.b = 11;console.log(obj1);//obj2同步更新console.log(obj2);

let a = 1,b = 2;let res = a + "+" + b + "=" + (a + b);console.log(res);// 模板字面量使用反引号:'`';res = `${a}+${b}=${a+b}`;console.log(res);

模板字面量使用反引号”`”;
模板字面量的组成:
let menu = ['首页', '系统', '新闻', '产品'];let htmlStr = `<ul><li>${menu[0]}</li><li>>${menu[2]}</li><li>>${menu[2]}</li><li>>${menu[3]}</li></ul>`;console.log(htmlStr);

let [a, b, c] = [1, 2, 3];console.log(a, b, c);[a, b] = [1, 2, 3]console.log(a, b);[a, b, c, d = 4] = [1, 2, 3]console.log(a, b, c, d);[a, b, ...c] = [1, 2, 3, 4, 5, 6, 7];console.log(a, b, c);//单独取一个值[, , c, ] = [1, 2, 6, 4]console.log(c);//交换[y,x]=[x,y];

let {id,name} = {id: 10,name: '手机'};console.log(id, name);({name,id} = {id: 10,name: '手机'});console.log(id, name);let email = 'admin@qq.com';let {role,//取别名email: userEmail} = {role: 'user',email: 'user@qq.com'};console.log(userEmail);console.log(email);

对象传参
let sum = ([a, b]) => a + b;console.log(sum([1, 2]));
let getUser = ({name,}) => [name, email];console.log(getUser({email: 'admin@admin.com',name: '系统管理员'}));

箭头函数中的this总是指向定义它时的作用域(静态作用域|词法作用域),而非调用时的作用域;
bind,call,apply方法
bind 不会立即执行,返回的是一个函数
function hello(name) {this.name = name;console.log(this.name);}const obj = {name: 'admin',}console.log(hello('admin'));let f = hello.bind(obj, 'user');console.log(f());bind动态改变当前this
document.querySelector('button').addEventListener('click', function() {console.log(this.name);}, bind({name: '这是测试'}))call,apply会立即执行
apply参数必须是数组
f = hello.call(obj, '这是call');console.log(f);f = hello.apply(obj, ['这是call']);console.log(f);
将方法伪造成一个属性,访问器属性的优先级高于同名的普通属性
const product = {data: [{name: '电脑',price: '999',num: 1}, {name: '电脑',price: '999',num: 2}, {name: '电脑',price: '999',num: 3}, ],getAmounts() {return this.data.reduce((t, c) => (t += c.price * c.num), 0);},//访问器属性// 将方法伪造成一个属性get total() {return this.data.reduce((t, c) => (t += c.price * c.num), 0);}}console.log('总金额', product.getAmounts());console.log('访问器总金额', product.total);

let score = 59;if (score >= 90) {console.log('优秀');} else if (score >= 80) {console.log('良好');} else if (score >= 70) {console.log('合格');} else if (score >= 60) {console.log('及格');} else {console.log('不及格');}
单值
let score = 80;switch (true) {case score >= 90:console.log('优秀');break;case score >= 80:console.log('良好');break;case score >= 70:console.log('合格');break;case score >= 60:console.log('及格');break;default:console.log('补考');}
let status = 'success';switch (status) {case 'ok':console.log('成功');break;case 'fail':console.log('失败');break;default:console.log('未知错误');}
let score=80;console.log(score>=80?'合格':'补考');
while循环:入口判断型
let arr=[1,2,3,4,5];//初始化循环变量let i=0;// 设置循环条件while(i<arr.length){console.log(arr[i]);// 更新循环条件i++}do while 循环:出口型循环
let i = 0;do {console.log(arr[i]);i++} while (i < arr.length);for 循环
for(初始化循环变量;设置循环条件;更新循环条件){循环体};
for(let i=0;i<arr.length;i++){console.log(arr[i]);}循环与分支混编
break 终止
continue 跳出
for (let i = 0; i < arr.length; i++) {//只输出前3if (i < 3) console.log(arr[i]);// if(i>=3) break;// console.log(arr[i]);}对象的遍历
for in
const user = {id: 1,name: 'user',age: 22,};for (let key in user) {console.log(`${key}=>${user[key]}`);}for of
for (let value of arr) {console.log(value);}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号