目录
let与const关键字
let
- let是块级作用域
- 不能重复声明
- let声明变量不会变量提升
const
- const是块级作用域
- 不能重复声明
- const声明变量不会变量提升
- 建议大写
- 声明必须赋值
- 声明后不能修改*(复杂数据可以修改。eg:数组)
解构
解构就是把数组或者对象拆分为单个的变量
解构数组
- 解构数组是按顺序的
交换变量
var a =15;
var b =33
var [a,b]=[b,a]
结果:
不定参(剩余值)与跳过
var arr = [1, 3, 9, 24, 74, 98, 202];
[c, , d, ...rest] = arr;
console.log(c, d, rest)
图中 ,, 两个逗号跳过了第二个元素3,rest是剩余的内容
结果:
默认值
若原数组有值,使用原数组的值。若原数组无值,使用默认值
var arr1 = [2, 9];
[e, f, g = 50] = arr1;
console.log(e, f, g)
结果:
解构对象
- 解构对象是无序的
- 变量名必须与对象的键名保持一致
let obj = {name:"小菜粥",age:18}
let {age,name} = obj;
console.log(name,age)
结果:
字符串
字符串方法
- includes() 是否包含子串,返回布尔值
let str = "我是小菜粥" let flag = str.includes("粥") console.log(flag) //ture
- endsWith() 是否在结尾包含,返回布尔值
let str = "我是小菜粥" let flag = str.endsWith("粥") console.log(flag) //ture
- startsWith() 是否在开始包含,返回布尔值
let str = "我是小菜粥" let flag = str.startsWith("我") console.log(flag) //ture
- repeat(n) 重复n次
let str = "我是小菜粥" let res = str.repeat(3) console.log(res) //我是小菜粥我是小菜粥我是小菜粥
- padStart(len,str) 头部填充,用另一个字符串填充当前字符串。len是填充的目标长度,str是用来填充的字符
let str = "我是小菜粥" let res = str.padStart(8,"粥") console.log(res) //粥粥粥我是小菜粥
- padEnd(len,str) 尾部填充,参数同上
let str = "我是小菜粥" let res = str.padEnd(8,"粥") console.log(res) //我是小菜粥粥粥粥
函数
箭头函数
ES6 中,箭头函数就是函数的一种简写形式,使用括号包裹参数,跟随一个 =>,紧接着是函数体:
var getPrice = function() {
return 4.55;
};
var getPrice = () => 4.55;//箭头函数
( 函数参数 ) => { 返回值也是执行语句 }
1. 参数只有一个时,可以省略括号
2. 执行语句只有一条时,可以省略大括号
3. 若返回的是一个对象则返回内容用()包裹
4. 箭头函数中的this指向上一层作用域的this
函数默认参
function say(age = 18) {
console.log("大家好我今年" + age + "岁了")
}
say(); //大家好我今年18岁了
say(16); //大家好我今年16岁了
函数不定参
function re(...arg) {
return arg.reverse()
}
console.log(re(1, 2)) //[2, 1]
console.log(re(2, 3, 4)) //[4, 3, 2]
console.log(re(2, 1, 1, 6)) //[6, 1, 1, 2]
arg是一个参数数组是不定义
函数扩展参
function re(a,b,c){
console.log(a,b,c)
}
let arr = [2,5,2,9,4]
re(...arr) //2 5 2
欢迎大佬指正给予建议