ES6语法ECMA总结

定义变量

let 相当于var
const 定义常量
区别

  1. 块级作用域 {}内 if(){} for(){}
  2. 没有预解析,不存在变量提升,必须先定义再使用,否则报错
  3. 在同一个作用域中,变量不能重复定义,但是可以重新赋值
  4. const定义变量不能修改,所以必须定义就赋值

解构赋值

数组
左右结构一致

	 let [a,b,c]=[2,4,6]
     let [a, [b, c]] = [1, [2, 3]];
     console.log(a,b,c)   //2 4 6   //1 2 3
	应用:交换数据
	let a = 1;
	let b = 2;
	[a, b] = [b, a];
	console.log(a, b);   // 2 1

对象
a:num 起别名
d=‘暂无数据’ 默认数据

let { a:num, b, c,d=‘暂无数据’ } = {
    a: 11,
    b: 99,
    c: 10
}
console.log(num, b, c);   // 11 99 10

注意:top代表window

模板字符串

let age=18;
console.log(`我今年${age}岁了`)

查找字符

  • indexOf() 如果存在返回的是字符的索引,若不存在返回-1
let str = 'abckoejofiw';
console.log(str.indexOf('iw'));  // 9
  • includes() 存在返回true,不存在返回false
let str = 'abckoejofiw';
console.log(str.includes('x'));   // false
  • 判断浏览器
if(navigator.userAgent.includes('chrome')){
	console.log('谷歌')
}else{
    console.log('不是谷歌')
}
  • 判断以谁开头结尾 true/false
 - str.startsWith('开头')   
 - str.endsWith('结尾')
  • 重复字符串 str.repeat(2) // 2为重复次数
  • 填充字符串
    str.padStart(2,'x')   以‘x’从前填充为2位数
	str.padEnd(2,'x')   以‘x’从后填充为2位数

函数

  • 函数的默认参数
function( a, b="默认参数" ){}
function(  {a,b}={} ){}
  • 箭头函数
let show =  ()=>{
    //this指向函数外部的this
    //箭头函数里边没有arguments,但可以用...args
    //箭头函数不能作为构造函数
}
  • 函数的参数的变量默认已经定义,不能重复定义

扩展运算符 (重置reset运算符) …

  • 作用一 : 扩展
 - 展开数组 ...[a,b,c]=a,b,c
let  arr=[1,2,3]
console.log(...arr)   // 1 2 3

 - 重置数组   ...a == arguments
function show(...a){
		consle.log(a)   // [1,2,3,4]
}
show(1,2,3,4)    

 - 剩余数组
function show(a,b,...c){
		consle.log(a,b,c)   // 1 2 [3,4] 
}
show(1,2,3,4)  

 - 复制数组
 let arr=[1,2,3];
 let arr2=[...arr];
 console.log(arr,arr2)  

猜你喜欢

转载自blog.csdn.net/weixin_43848576/article/details/89006857