Es6
景尘
高山景行,一尘不染
展开
-
react简单入门介绍
以下是一个最简单的 demo,将一个最简单的组件渲染到页面上。import React from 'react'import { render } from 'react-dom'// 定义组件class Hello extends React.Component { render() { // return 里面写jsx语法 return <p...原创 2018-07-23 18:21:39 · 431 阅读 · 0 评论 -
Es6之编程风格
1.块级作用域(1)let 取代 varES6 提出了两个新的声明变量的命令:let和const。其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。'use strict';if (true) { let x = 'hello';}for (let i = 0; i < 10; i++) { console.log(i);}上面代码...原创 2019-03-21 14:50:46 · 208 阅读 · 0 评论 -
let、const、var块级作用域、变量提升
1、var声明及变量提升机制无论在哪里声明,都会被当成在当前作用域顶部声明的变量,这就是我们常说的提升机制。 function getValue(params) { if (params) { var value = 'blue' //代码 return } else { ...原创 2019-03-17 21:24:34 · 415 阅读 · 0 评论 -
export和import的用法
export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。1、输出变量:第一种:export var firstName = 'Michael';export var lastName = 'Jackson';export var year = 1958;第二种:(应该优先考虑使用这种写法。因为这样就可以在脚本尾部,一眼看清楚输出了哪些变量)v...原创 2018-07-30 15:54:10 · 8742 阅读 · 3 评论 -
ES6之尾递归
尾递归函数调用自身,称为递归。如果尾调用自身,就称为尾递归。递归非常耗费内存,因为需要同时保存成千上百个调用帧,很容易发生“栈溢出”错误(stack overflow)。但对于尾递归来说,由于只存在一个调用帧,所以永远不会发生“栈溢出”错误。function factorial(n) { if (n === 1) return 1; return n * factorial(...原创 2018-08-08 15:49:32 · 741 阅读 · 0 评论 -
ES6之尾调用优化
什么是尾调用? 尾调用(Tail Call)是函数式编程的一个重要概念,本身非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。function f(x){ return g(x);}上面代码中,函数f的最后一步是调用函数g,这就叫尾调用。以下三种情况,都不属于尾调用。// 情况一function f(x){ let y = g(x); r...原创 2018-08-08 15:42:30 · 314 阅读 · 0 评论 -
ES6之箭头函数
基本用法 ES6 允许使用“箭头”(=>)定义函数。var f = v => v;// 等同于var f = function (v) { return v;};如果箭头函数不需要参数或需要多个参数,就是用一个圆括号代表参数部分。var f = () => 5;// 等同于var f = function () { return 5 };v...原创 2018-08-08 14:49:02 · 174 阅读 · 0 评论 -
ES6之let和const的区别
let:声明的是变量1、不存在变量提升// var 的情况console.log(foo); // 输出undefinedvar foo = 2;// let 的情况console.log(bar); // 报错ReferenceErrorlet bar = 2;上面代码中,变量foo用var声明,会发生变量提升,即脚本开始运行时,变量foo已经存在了,但是没有值,所以会...原创 2018-08-08 10:16:35 · 5878 阅读 · 0 评论 -
ES6之Promise对象
1、含义简单来说,就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。特点:(1)对象的状态不受外界影响。promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功),rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是promise这个名字的由来。(2)一...原创 2018-08-10 15:03:57 · 214 阅读 · 0 评论 -
js对象拷贝
1、万能的for循环实现对象的浅拷贝仅仅复制对象的引用,而不是对象本身。给子对象的数组类型的属性添加一个新值,父对象的该属性值也被篡改。 var obj = { name: 'FungLeo', sex: 'man', old: '18' } var obj2 = copyObj(obj) function copy...原创 2018-07-28 11:20:31 · 1655 阅读 · 0 评论 -
js数组拷贝
1、for循环实现拷贝。 var arr = [1, 2, 3, 4, 5] var arr2 = copyArr(arr) function copyArr(arr) { let res = [] for (let i = 0; i < arr.length; i++) { res.push(arr[i]) ...原创 2018-07-28 11:19:01 · 695 阅读 · 0 评论 -
ES6之set
setES6提供了新的数据结构set。它类似于数组,但是成员是唯一的,没有重复的值。(数组去重)const s = new Set();[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));for (let i of s) { console.log(i);}上面代码是通过add方法向set结构 加入成员,结果表明set结构不会...原创 2018-08-09 15:01:30 · 321 阅读 · 0 评论 -
浏览器缓存问题
不论面试还是工作中,经常遇到浏览器缓存的问题,例如,样式图片等改好了,也提交了,用户那边还是未解决,你可以在webpack里面配置一下,加hash值,每次输出的文件名不一样,浏览器就会重新加载。找到你的webpack.base.conf.js文件输出的地方chunkFilename: 'chunk[id].js?[chunkhash]',filename: '[name][hash:8...原创 2018-07-18 17:41:05 · 241 阅读 · 0 评论 -
浅谈async
1、基本用法async函数返回一个 Promise 对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。下面是个例子:async function getStockPriceByName(name) { const symbol = await getStockSymbol(name); co...原创 2019-03-18 14:05:32 · 625 阅读 · 7 评论