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

  • 相关阅读:
    Hexo+Github 搭建一个自己的博客
    vue中sessionStorage存储的用法和问题
    vue 页面刷新
    vue渲染完页面后div滚动条定位在底部
    vue 定义全局函数
    vue filter过滤器用法
    vue中bus.$on事件被多次绑定
    vue中引入jQuery的方法
    vue2.0传值方式:父传子、子传父、非父子组件、路由跳转传参
    vue打包后显示为空白页的解决办法
  • 原文地址:https://www.cnblogs.com/freesfu/p/11605133.html
Copyright © 2011-2022 走看看