zoukankan      html  css  js  c++  java
  • # ES6基础

    ES6基础

    let和const

    在以前的js中有一个问题,就是只存在函数作用域而不存在局部作用域。

    let,const的出现改变了这个问题。const就是定义常量。

    this指向

    说默认this指向调用它的对象倒不如说函数this的指向是又他的调用方法决定的。
    例如:

    'use strict';
    const person = {
        name: '',
        walk() {
            console.log(this);
        }
    }
    
    const walk = person.walk; // 绑定this
    walk();
    

    这里将会将会返回undefined(在严格模式下),如果不使用严格模式,那么这个this将指向window对象,在node中也就是global对象。而在严格模式下不允许this指向window对象。

    对于匿名函数,他不会改变this的指向。

    数组和对象的解构

    使用...来对数组和对象进行析构操作。

    const arr = [1, 2, 3]
    const ob = {name: 'ob'}
    const [a, b, c] = [...arr] // 数组析构
    const {name} = {...ob} // 对象析构
    

    如果想要对象中的某个属性进行重命名而不像使用原来的名字的化,可以这样做{name: newName = {...ob}。对象析构根据键复制,如果你不想要对应的某个属性的话,你可以忽略这个键名。

    结构操作在很多时候都很有用,比如你想要连接几个数组的时候一般使用concat的方法,但是concat方法不想像使用析构的时候可以随意插入新值。

    扩展运算符

    例如像是这样子的函数函数

    function test(...args) {
    	//
    }
    function test1(a1, ...args) {
    	//
    }
    

    对于test函数,传入的所有参数(不限个数)都将存储在args数组中。而对于test1函数,除传入的第1个参数以外都将会被装入args数组中。

    函数

    1. Array.filter
      该函数接收一个回调函数,数组的每一项都将会被传入这个函数。当回调函数返回值为true时,此时被传入回调函数的一项值被装入一个新的数组。

      在数组的所有条目遍历完成以后,将这个新数组返回。

    2. Array.map

      对数组的每一项应用map中传入的回调函数,之后将经过处理的项装入一个新的数组并返回。

    模块化

    博客园js中的模块v化

    js中的模块化就是将不同功能的js抽取出来放在不同的文件中。

    模块中的对象默认是私有的,也就是默认只能够在这个模块(文件)中访问,如果需要其能够在外部被访问的话,那么就需要声明它能够被外部导出。

    像是这样:

    export class Person {
        constructor(name) {
    	this.name = name
        }
    
        walk() {
    	console.log('walk')
        }
    }
    

    要是需要导出的话就需要使用对象名导出,像是import {Person} from './Person',当然我们最常见的是例如import React from 'react'这是从js官方模块中导入,所以不需要加上路径。

    同时他并没有使用对象名导入,而是直接使用了默认对象导出,大多数时候在模块中只有一个对象的时候使用。默认导出对象的定义只需要在export后面加上一个default关键字。

    对象名导入和默认对象导入可以混用,例如import React, {Conponent} from 'react'

    MDN web docs

  • 相关阅读:
    WiFi的STA和AP指什么
    802.11各协议对比
    计算机网络速率,带宽,吞吐量概念
    Android Netd分析
    走进京东618大促“产星”之路
    科技爱好者周刊(第 171 期):云服务流量有多贵?
    科技爱好者周刊(第 170 期):软件订阅制的胜利
    科技爱好者周刊(第 169 期):五菱汽车的产品设计
    在Chrome中打开网页时出现以下问题 您的连接不是私密连接 攻击者可能会试图从 x.x.x.x 窃取您的信息(例如:密码、通讯内容或信用卡信息)
    mac 更新到big sur 后,parallels虚拟机的一些问题:由于您尚未获得访问其中一些文件的授权,所以您不能恢复“Windows 10
  • 原文地址:https://www.cnblogs.com/freesfu/p/11605133.html
Copyright © 2011-2022 走看看