随笔分类 - ES6
新标准javascript 在严格模式use strict进行
摘要:import sm from "sm-crypto"; // 注意加这个包起来 key 和 iv const text = new TextEncoder(); console.log( 123, sm.sm4.decrypt( "0932d0497791aa94ba067fb0256cb4c5c3
阅读全文
摘要:reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。reduce() 方法接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce() 的数组。 reduce( ) 的几个强大用法:(reduce的核心在于与上次的操
阅读全文
摘要:Object.keys() Object.values() Object.entries 自己实现Object.entries方法,非常简单
阅读全文
摘要:很多时候,我们拿到别人的库,都是通过npm install 来的,这些组件非常方便,在哪里都能够通过简单的引入,来获得其使用权。 你需要手工,人力去判断自己所在层级的位置,然后一个一个的../../../../../../../../去点出来,查找包的位置。 说明 一般前端(基于vue脚手架的应用)
阅读全文
摘要:一般情况 || 但是有很多的或 || 那难道要写 很多 用 includes 函数 即可解决 Array.includes代替Array.indexOf
阅读全文
摘要:什么是async和await 你要想理解语法,可以先从两个单词的基本意思来进行了解.async是异步的简写,而await可以堪称async wait的简写。明白了两个单词,就很好理解了async是声明一个方法是异步的,await是等待异步方法完成。注意的是await必须在async方法中才可以使用因
阅读全文
摘要:require相当于module.exports的传送门,module.exports后面的内容是什么,require的结果就是什么,对象、数字、字符串、函数……再把require的结果赋值给某个变量,相当于把require和module.exports进行平行空间的位置重叠。 而且require理论上可以运用在代码的任何地方,甚至不需要赋值给某个变量之后再使用,比如: require('....
阅读全文
摘要:require是commonjs规范,是node的写法,webpack帮你做了语法转换,不单单是webpack可以做这事,gulp-browsers,requirejs一样可以 Node是commonjs规范,用require导入js模块,通过webpack等构建工具把require的js包注入到页面上,import是ES6/7的语法,如果浏览器支持,理论上不用构建工具就可以当作模块导入 n...
阅读全文
摘要:在ES5中我们要进行模块化操作需要引入第三方类库,随着前后端分离,前端的业务日渐复杂,ES6为我们增加了模块化操作。模块化操作主要包括两个方面。 export :负责进行模块化,也是模块的输出。 import : 负责把模块引,也是模块的引入操作。 export的用法: export可以让我们把变量
阅读全文
摘要:我们在ES5中经常使用方法或者对象去模拟类的使用,虽然可以实现功能,但是代码并不优雅,ES6为我们提供了类的使用。需要注意的是我们在写类的时候和ES5中的对象和构造函数要区分开来,不要学混了。 类的声明 先声明一个最简单的coder类,类里只有一个name方法,方法中打印出传递的参数。 class
阅读全文
摘要:简单解释一下什么是钩子函数。当我们在操作一个对象或者方法时会有几种动作,比如:在运行函数前初始化一些数据,在改变对象值后做一些善后处理。这些都算钩子函数,Proxy的存在就可以让我们给函数加上这样的钩子函数,你也可以理解为在执行方法前预处理一些代码。你可以简单的理解为他是函数或者对象的生命周期。Pr
阅读全文
摘要:学习map的这种ES6新加的数据结构。在一些构建工具中是非常喜欢使用map这种数据结构来进行配置的,因为map是一种灵活,简单的适合一对一查找的数据结构。我们知道的数据结构,已经有了json和set。那map有什么特点。 Json和map格式的对比 map的效率和灵活性更好 先来写一个JSON,这里
阅读全文
摘要:Set的声明 Set值的增删查 追加add: 删除delete: 查找has: 清空clear: set的循环 for…of…循环: size属性 forEach循环 WeakSet的声明
阅读全文
摘要:Symbol的打印 我们先声明一个Symbol,然后我们在控制台输出一下。 var g = Symbol('zachary'); console.log(g); console.log(g.toString()); 这时候我们仔细看控制台是有区别的,没有toString的是红字,toString的是
阅读全文
摘要:ES6允许把声明的变量直接赋值给对象,我们看下面的例子。 对象Key值构建 有时候我们会在后台取出key值,而不是我们前台定义好的,这时候我们如何构建我们的key值那。比如我们在后台取了一个key值,然后可以用[ ] 的形式,进行对象的构建。 let key='skill'; var obj={ [
阅读全文
摘要:数字判断和转换 数字验证Number.isFinite( xx ) NaN验证 判断是否为整数Number.isInteger(xx) 整数转换Number.parseInt(xxx)和浮点型转换Number.parseFloat(xxx) 整数取值范围操作 整数的操作是有一个取值范围的,它的取值范
阅读全文
摘要:用Es6对象扩展运算符(…)与rest运算符说明 function test (...a) { for (let val = 0; val < a.length; val++) { console.log(val + ' ' + '常用的 for循环') // 0-7 便利出下标 } for (le
阅读全文
摘要:字符串模版 可以看到浏览器出现了和上边代码一样的结果。而且这里边支持html标签,可以试着输入一些。 对运算的支持: 字符串查找 ES6还增加了字符串的查找功能,而且支持中文哦,小伙伴是不是很兴奋。还是拿上边的文字作例子,进行操作查找是否存在: 先来看一下ES5的写法,其实这种方法并不实用,给我们的
阅读全文
摘要:对象扩展运算符(…) 当编写一个方法时,我们允许它传入的参数是不确定的。这时候可以使用对象扩展运算符来作参数,看一个简单的列子: function xzdemo(...arg){ console.log(arg[0]); console.log(arg[1]); console.log(arg[2]
阅读全文
摘要:1.单参数 function cheng(a=3){ return a*a; } let cheng= (a=3)=>a*a; console.log(cheng(9)); 2.多参数 function add(a,b){ return a+b; } let add = (a,b)=>a+b; //
阅读全文