/**
* @description: 解构赋值
* @param : undefined
* @return:
*/
//从数组中提取值 按照对应的位置 对变量进行赋值
let [aa1,bb1,cc1] = [1,2,3]
console.log("解构输出后的值为:"+aa1,bb1,cc1) //解构输出后的值为:1 2 3
//只要等号两边的模式相等 左边的变量就会被赋予对应的值
let [foo,[[bar,baz],hgc]] = [111,[[222,333],444]]
console.log(foo,bar,baz,hgc) //111 222 333 444
let[,,thirld] = ["vv","bbb","喵喵喵nnn"]
console.log("对应处的位置的值:"+thirld)//对应处的位置的值:喵喵喵nnn
let [head, ...tail] = [1,2222,333,4444,5555,6666,7777,8888]
console.log(head,tail)//1 [2222, 333, 4444, 5555, 6666, 7777, 8888]
let[x,y,...z] = ['888',"",]
console.log(x,y,z)//888 []
//这种就是解构不成功 等号左边的模式 没有匹配到右边的
let [foo0] = [];
console.log(foo0) //undefined
let [bar01, foo01] = [1];
console.log(bar01,foo01) //1 undefined
//不完全解构 等号左边只匹配到右边的一部分
let [ww,zzz] = [111,222,333]
console.log(ww,zzz)
/**
* @description:默认值
* @param :
* @return:
*/
//只有当右边的 元素为undefined或者 右边的[]为空的时候才会显示对应的默认值
let [bgc = true] = []
console.log("默认值为:"+bgc)
let [x1,y2="56565656"] = ["hhh",undefined]
console.log(x1,y2)
function as(){
return 10;
}
let [xxx = as()] = [122] //这边因为右边因为有值就不会调用对应的方法
console.log(xxx) // 122 如果右边的值为undefined的话 就为10
/**
* @description: 对象的解构赋值操作
* @param :
* @return:
*/
//变量必须与属性同名,才能取到正确的值
let { nnn,mmm} = {mmm: 5555, nnn: 6666}
console.log(nnn,mmm)
//如果变量名与属性名不一致,必须写成下面这样 可以理解成别名
let {jjj: kkk} = {jjj: 123,bbb: 321}
console.log(kkk)
let {ppp: vbs} = {ppp: 4567898}
console.log(vbs)
/**
* @description: 字符串遍历接口
* @param :
* @return:
*/
//使用for...of遍历字符串
for(let codepoint of 'java'){
console.log(codepoint) //j a v a
}
//for of 也可以遍历数组 总结有长度的就可以for of 进行遍历
let hcg = [1,2,3,4]
for(let ghc of hcg){
console.log(ghc) // 1 2 3 4
}
//normalize()方法,用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化
// includes():返回布尔值,表示是否找到了参数字符串。
// startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
// endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
let st = "javaScript"
console.log(st.includes('S')) //区分大小写哦 true
console.log(st.startsWith("ja")) //true
console.log(st.endsWith("pt")) //true
//repeat方法返回一个新字符串,表示将原字符串重复n次。
/*
但是,如果参数是 0 到-1 之间的小数,则等同于 0,这是因为会先进行取整运算。
0 到-1 之间的小数,取整以后等于-0,repeat视同为 0。
参数NaN等同于 0。
如果repeat的参数是字符串,则会先转换成数字。
*/
let Qname = '强哥'.repeat("6")
console.log(Qname) //强哥强哥强哥强哥强哥强哥
//padStart(),padEnd()字符串补齐功能
/*一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串*/
let st1 = "m".padStart(5,"nj") //njnjm
console.log(st1)
let st2 = "b".padEnd(6,"junit") //bjunit
console.log(st2)