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新语法

一、ES6简介

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。

那么ECMAScript 和 JavaScript 到底是什么关系?ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现。

二、let和const

1.let块级作用域

以前var声明的变量是函数作用作用域

 if (true) {
        var a = 10;
      }
      console.log(a); //10

?现在let声明的变量具有块级作用域:{},也就是变量只在{}里面起作用,外面是无法获取和操作的

 if (true) {
        let a = 10;
      }
      console.log(a); //报错  a is not defined

2. let没有变量提升

  console.log(num);//var声明的变量可以提前调用
    var num = 10;

      console.log(num);//let声明的变量不能提前使用
      let num = 10;

3.const声明常量?

const声明的常量里面的内容是不能更改的

三、解构赋值

1.数组结构

let [a, b, c] = [10, 20, 30];
console.log(a); //10
console.log(b); //20
console.log(c); //30

2.对象结构?

 let obj = { name: "tom", age: 23 };
 let { name, age } = obj;
 console.log(name);
 console.log(age);

四、箭头函数

1.无参写法

原函数写法:

 function fn() {
     console.log("hello");
  }
  fn();

箭头函数写法:

const fn = () => console.log("hello");
fn();

?

2.单句写法

函数体中只有一句代码,代码的执行结果就是返回值的时候,可以省略箭头函数的大括号

原函数写法:

 function sum(a, b) {
    return a + b;
 }
 fn(10, 20);

?

箭头函数写法:

const fn = (a, b) => a + b;
console.log(fn(10, 20));

?

3.箭头函数中的this?

普通函数中的this指向window

  function fn() {
    console.log(this); //window
  }
  fn();

?对象中的普通函数执行调用者

var obj = {
   name: "tom",
   say: function() {
      console.log(this);//obj对象
   }
  };
  obj.say();

箭头函数中的this指的是函数定义位置的上下文。

 var obj = {
   name: "tom",
   say: () => {
     console.log(this);//window对象
   }
 };
 obj.say();

面试题:

 var name = "jim";
 var obj = {
    name: "tom",
    say: () => {
      console.log(this.name);
    }
    };
    obj.say();

?

五、剩余参数

1.运用场景

比如我们想定义一个函数,如果是两个参数,就计算两个参数的和,如果是三个参数,就计算三个参数的和。

以前的写法:

 function fn() {
        var sum = 0;
        // arguments是位数组,是函数中所有参数的形成的数组
        for (var i = 0; i < arguments.length; i++) {
          sum += arguments[i];
        }
        console.log(sum);
      }
      fn(10, 20); //30
      fn(10, 20, 30); //60

Es6的写法:

  const fn = (...args) => {
        let sum = 0;
        args.forEach(item => {
          sum += item;
        });
        console.log(sum);
      };
      fn(10, 20); //30
      fn(10, 20, 30); //60

2.使用场景?

 let arr1 = ["tom", "jim", "jack"];
  let [str1, ...str2] = arr1;
  console.log(str1); //tom
  console.log(str2); //jim jack

?

六、扩展运算符

1.基础使用

扩展运算符是把数组或者对象转换成用逗号分隔的参数序列

let arr = ["tom", "jim", "jack"];
console.log(...arr); // tom  jim  jack

2.使用场景(合并数组)?

 let arr1 = ["a", "b", "c"];
      let arr2 = ["d", "e", "f"];

      let arr3 = [...arr1, ...arr2]; //['a','b','c','d','e','f']
      console.log(arr3);

七、Array扩展

1.find方法

find是查找数组中符合条件的成员,如果没有找到返回undefined

 let arr = [
        {
          id: "1",
          name: "tom"
        },
        {
          id: "2",
          name: "jim"
        }
      ];
      const obj = arr.find(item => item.id == 2);
      console.log(obj);
    这个案例是查询对象的id是2的,返回结果是满足条件的那个对象

?

2.findIndex?

findIndex是返回满足条件的索引号,查不到返回返回-1

 let arr = [
        {
          id: "1",
          name: "tom"
        },
        {
          id: "2",
          name: "jim"
        }
      ];
      const index = arr.findIndex(item => item.id == 3);
      console.log(index);

3.includes?

let arr = [10, 20, 30];
const res = arr.includes(10);
console.log(res);

?上面判断的是10是不是在数组中存在

4.set

set类似于数组,但是成员中的值是唯一的,不会出现重复的

  const set = new Set([10, 22, 22, 10, 5]);
      set.add(11);
      set.add(99);
      set.delete(11);
      console.log(...set);
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-18 11:06:33  更:2021-11-18 11:08:14 
 
开发: 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年5日历 -2024/5/10 15:54:51-

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