IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 【ES6】总结 重点 (持续更新) -> 正文阅读

[JavaScript知识库]【ES6】总结 重点 (持续更新)

目录

变量声明?

解构?

① 数组解构[ ]

② 对象解构{}

③ 字符串解构

模板字符串

箭头函数 ( 参数 ) => { 函数体 }

剩余参数

扩展?

?①?运算符扩展?

?②??字符串扩展:

?③?Number扩展:

?④? 数组的扩展:

?⑤ 对象的扩展:

?symbol

?promise?

?类class


变量声明?

  • 采用?let?和?const?分别声明变量和常量。
  • 不用var所以不存在变量提升

解构?

① 数组解构[ ]

? ? ?等号左边允许存在默认值。变量的取值按照顺序。??

let [a,b]=[1,2];
console.log(a,b) -> 1 2
let [c,d]=[3]
console.log(c,d) -> 3 undefined
let [f=4,g=5,h=6]=[,undefined,null];
console.log(f,g,h) -> 4 5 null

② 对象解构{}

? ? ?根据键值取值。

let obj={
    name:'hua',
    age:18
}
//不同名,则把左边的属性的值赋给右边自定义的变量
let {name:n,age:a}=obj;
console.log(n,a) -> 'hua' 18
console.log(name,age) ->打印报错 未声明
//同名的可以将name:name省略成name
let {age,name}=obj;
console.log(name,age) -> 'hua' 18

③ 字符串解构

? ? ?此时字符串被转换成一个类似于数组的对象。

let str='hello World';
let [a,b,c]=str;
console.log(a,b,c,typeof(a)) -> h e l string

模板字符串

`字符串${变量}字符串`

箭头函数 ( 参数 ) => { 函数体 }

不能作为构造的实例化对象,不能使用argument函数内置对象。当只有一个参数时,小括号可以省略;当函数体只有一条语句且为return,可以省略return和大括号。

剩余参数

实参大于形参个数时,会将多余的实参放进一个数组里。

function fn(a,...arr){
    console.log(a);             -> 1
    console.log(arr);           -> ['a', 'b'] 
    console.log(arr[0]);        -> a
    console.log(arr[1]);        -> b 
    console.log(arr[2]);        -> undefined     
}
fn(1,'a','b');//方法中的定义了4个参数,但调用函数时只使用了3个参数,ES6 中并不会报错。

扩展?

?①?运算符扩展?

用途1:避免指向同一个地址
//对象是引用数据类型,赋给的变量存的是该对象的地址,所以
let str1=[1,2];
let str2=str1;        
//这两个变量存的是同一个对象的地址,通过任何一个变量对该数组进行改变,该数组都会发生相应的改变,
//这时就可以通过扩展运算符 
let str2=[...str1]; //为str2开辟一个新的内存地址,就不会影响str1了
用途2:合并数组
let arr1 = [1, 2, 3]; // ...arr1  // 1,2,3     序列
let arr2 = [4, 5, 6]; // ...arr2  // 4,5,6     序列
// 方法1
let arr3 = [...arr1, ...arr2];
console.log(arr3); // [1,2,3,4,5,6]
// 方法2
arr1.push(...arr2);
console.log(arr1); // [1,2,3,4,5,6]
用途3:伪数组或可遍历的对象转为数组
let pa = document.getElementsByClassName('li');
let arr = [...myDivs]; // 利用扩展运算符,将伪数组转为真正的数组
//pa.push('a'); 报错 伪数组不支持
arr.push('a');
console.log(arr); //['a']
//方法2
let a=Array.from(pa);
a.push('a');
console.log(a);

?②??字符串扩展

  • includes(str):判断是否包含指定的字符串
  • startsWith(str):判断是否以指定字符串开头
  • endsWith(str):判断是否以指定字符串结尾
  • repeat(count):重复指定的次数

?③?Number扩展

  • 八进制0o表示,二进制0b;
  • Number.isFinite(n):判断是否为有限大的数。比如Infinity这种无穷大的数,返回的就是 false。

  • Number.isNaN(n):判断是否为 NaN。

  • Number.isInteger(n):判断是否为整数。

  • Number.parseInt(str):将字符串转换为对应的数值。

  • Math.trunc(n):去除小数部分。

?④? 数组的扩展:

  • Object.is(v1, v2);作用:判断两个数据是否完全相等。底层是通过字符串来判断的。

  • Object.assign() 浅拷贝与深拷贝里

  • __proto__属性

?⑤ 对象的扩展:

?symbol

?

?promise?

?

?类class

ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。

class lei{
    constructor(age){
        this.age=age;
    }
    fangfa(){
        console.log('方法不需要写function');
    }
}
let l=new lei(18);
console.log(l.age); //18
l.fangfa(); //方法不需要写function
  • 通过class关键字创建类,类名首字母大写;
  • 类里面有个constructor函数,可以接受传递过来的参数,同时返回实例对象;只要new生成实例化对象,就会自动调用该函数,即使不写也会自动生成;
  • 生成实例化对象new不能省略;
  • 方法不需要写function。
class Father {
    constructor(x, y) {
        this.x = x;
        this.y = y;
    }
    sum(){ console.log(this.x+this.y); }
    father(){ return ('我是父亲'); }
}
class Son extends Father {
    constructor(x,y){
        super(x,y);
        this.x=x;
        this.y=y;
    }
    son() {
        console.log(super.father()+'的儿子' );
    }
    sub(x,y){ console.log(this.y-this.x) }
}
let son = new Son(1, 2);
console.log(son); //Son {x: 1, y: 2}
son.sum();  // 3
son.son();  //我是父亲的儿子
son.sub();  //1
  • 继承extends,super()。
  • 必须先调用父类的构造函数才能写子类构造函数的this。
  • constructor的this指向实例对象,方法的this指向调用者。

?

?

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 18:55:10  更:2022-08-19 18:55:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:17:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码