// 数组 浅拷贝 let arr = [7, 2, 3] let cparr = []; arr.forEach((v, index) => { cparr[index] = v }) cparr[1] = 12 console.log(cparr, arr); let cparr2 = arr.slice() cparr2[1] = 12 console.log(cparr2, arr); //浅拷贝对象 let obj = {name: '小米', age: 12, test: {c: 1}}; let cpobj = {} for (const v of Object.keys(obj)) { cpobj[v] = obj[v] } console.log(cpobj) obj.test.c = 12 console.log(cpobj) cpobj2 = Object.assign({}, obj); console.log(cpobj2) // 深拷贝 cp = structuredClone(obj) console.log(cp) // 遍历方法 arr.forEach((value, index, array) => { }) for (let v of arr) { console.log(v) } for (let index in arr) { console.log(index) } // 赋值 let arr2 = [7, 2, 3]; let [a, b, c] = arr2; console.log(a, b, c); let human = {name: 'jocker', sex: 'girl', inex: undefined} let {name, sex, inex = 12} = human console.log(name, sex, inex); // ... 操作时 function add(a,...v){ console.log(a,v) } add(1,2,3,4)//函数是和argument 差不多 a = [1,2,3,4]; let v = [1,2,3,...a];//和 concat console.log(v); console.log([].concat(a,[4,5,6])); //String console.log('hhhhhx'.charCodeAt(2)); console.log(String.fromCharCode(104)); //数组 python arr[1:2] js如何操作 console.log(arr.slice(1, 2),arr); console.log(arr.splice(1, 0, 1, 2, 3)); //可以插入 console.log(arr) console.log(arr.splice(1, 3),'删除内容会返回'); //可以删除 console.log(arr) // 正则环节 // 隐式 let tag = ` <a href="http://localhost.com">主页1</a> <a href="http://localhost.com">主页2</a> <a href="http://localhost.com">主页3</a> <a href="http://localhost.com">主页4</a> `; let reg = /<a href="(?<url>[\w|\/|:|\.]+)">(?<text>.+)?<\/a>/ig; console.log(reg.test(tag)) //判断是否有 console.log(reg.exec(tag)); let key; while (key = reg.exec(tag)?.groups){ console.log(key) } // 说起这个?. a = {test:{add(a,b){return a+b;}}}; console.log(a.test && a.test.add &&a.test.add(1,2)) console.log(a.txst?.xsaxa?.sadsa) //Map 升级版 Obj <====> 我就不复习了 Set 总的来看没啥东西 js 可能还有Promise还有一些东西后面完善