![](https://img-blog.csdnimg.cn/20190928123529333.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ES6
文章平均质量分 52
前端es语法笔记
诗水人间
要想走的更远,就需要思考更深层次的问题。冷静、智慧、深沉是我所向往的
展开
-
js对象equals,深度equals,包括数组,嵌套对象或数组。递归处理
下面是我封装的函数deepEquals可以解决以下场景下的对象等于判断:普通对象(key是字符串、value不能是二维数组),数字、字符串、null、undefined、一维数组对于一般的json对象,很可能会对象嵌入数组,数组中又包含对象,如果顺序一致还可以比较我的原理是将数组看作一个对象key为0…length长度的对象而普通对象本身就存在key,value的形式但由于数组比较特殊,其key自然顺序的,而普通的对象key可以是无序的,只要key不重复即可因此如果传进去的a对象是数组,内原创 2022-04-29 15:07:59 · 926 阅读 · 0 评论 -
js对象等值判断,递归处理
来自文章:https://www.jianshu.com/p/c8fe19f0ea37记录一下,方便以后复用下面是vue的代码,单纯js,加上function声明和去掉thisequals(x, y) { var f1 = x instanceof Object; var f2 = y instanceof Object; if (!f1 || !f2) { return x === y } if (Object.keys(x).length !原创 2021-03-15 01:28:28 · 589 阅读 · 0 评论 -
js 对象的深拷贝、合并、清空属性值(自己封装,递归清除对象属性值。)
对象属性和值的深拷贝let staffForm = { id: '123', name: 'zhangsan'}方法一:ES6语法let obj = Object.assign({}, staffForm);//obj是深拷贝的对象方法二:JSON工具,通过转字符串,然后转对象let obj = JSON.parse(JSON.stringify(staffForm));//obj是深拷贝合并对象会合并相同属性、后面的会覆盖前面的const o1 = { a: 1, b: 1,原创 2020-07-15 21:50:36 · 159394 阅读 · 0 评论 -
ES6---数组map、reduce函数
数组map函数传入一个函数,会按照函数的规则进行操作 let arr=["12","-1","10","5"]; arr = arr.map(item=>item*2);//最简洁的写法 //arr = arr.map(item=>{return item*2}); //写法2 console.log(arr);//[24,-2,20,10]数组reduce函数 let arr=[12,-1,10,5]; let result = arr.原创 2020-07-01 23:04:20 · 170694 阅读 · 0 评论 -
ES6----对象优化
获取对象的变量和值const person={ name:"jack", age:21, language:['java','js','css']}console.log(Object.keys(person));//输出["name","age","language"]console.log(Object.values(person));//["jack",21,Array[3]]console.log(Object.entries(person));/*[ ["name","jac原创 2020-07-01 17:55:53 · 144237 阅读 · 0 评论 -
ES5~6~7学习笔记 Promise对象的使用
Promise状态有三种:pending 初始化状态 fullfilled 成功状态 rejected 失败状态 <script type="text/javascript"> //创建Promise对象 let promise=new Promise((resolve, reject)=>{ //初始化状态为pending cons...原创 2019-09-03 01:33:51 · 129672 阅读 · 0 评论 -
ES5~6~7学习笔记 形参默认值
调用函数时忘记传参会使用默认值x=0,y=0<script type="text/javascript"> function foo (x=0,y=0) { }</script>原创 2019-09-03 01:01:52 · 131069 阅读 · 0 评论 -
ES5~6~7学习笔记 三点运算符... 介绍arguments伪数组
arguments:用来接受函数的参数,本身是一个伪数组。...运算符和arguments比较,共同点都用来接收参数<script type="text/javascript"> function foo (a,b) { // 错误写法,伪数组没有forEach方法 arguments.forEach(function (item,index) {...原创 2019-09-03 00:56:01 · 122558 阅读 · 0 评论 -
ES5~6~7学习笔记 ()=>函数的使用
箭头函数的特点:简介 没有this形参:()=>函数各种的情况没有形参时()不能被省略 当只有一个形参时()可以省略 两个以上的形参时()不能被省略<script type="text/javascript"> let fun1=()=>{ console.log('进入箭头函数') }</script>&l...原创 2019-09-03 00:14:13 · 116373 阅读 · 0 评论 -
ES5~6~7学习笔记 简化对象的写法
对象简写的条件:变量名和对象的属性名相同则可以简写 省略函数的function关键字<script type="text/javascript"> let name='bob' let age=18 let obj={ name, age, getName(){ return name } } conso...原创 2019-09-03 00:14:02 · 142028 阅读 · 0 评论 -
ES5~6~7学习笔记 模板字符串的拼接 ``和${}的使用
模板字符串必须用 `` 包含 变化的部分用 ${xyz}定义<script type="text/javascript"> let obj={name:'bob',age:18} let str=`姓名:${obj.name},年龄:${obj.age}` console.log(str)</script>...原创 2019-09-03 00:13:55 · 136657 阅读 · 0 评论 -
ES5~6~7学习笔记 解构赋值数据
对象解构:<script type="text/javascript"> let obj={name:'bob',age:18} let {name,age}=obj console.log(name,age)</script>解构数组: 只会根据位置解构数据,如果取下标不是第一个则空出位置;比如 let[,,a,b]=arr...原创 2019-09-03 00:13:43 · 138116 阅读 · 0 评论 -
ES5~6~7学习笔记 let和const
let 和 var一样用来声明一个变量let的特点:在块作用域内有效 不能重复声明 不会预处理,不存在提升let的应用循环变量加监听 let取代var是趋势const:定义一个常量const特点:不能修改 在块作用域内有效 不能重复声明 不会预处理,不存在提升const应用:保存不用改变的数据...原创 2019-09-03 00:13:36 · 152197 阅读 · 0 评论 -
ES5~6~7学习笔记 函数扩展 call() 和 apply() 和 bind()
<script type="text/javascript"> var obj={name:'bob',age:18} function f1 (value) { console.log(this,value) } // call和apply的区别在于传入参数形式不同 f1.call(obj,22)// 依次传入 f1.apply(obj,[33])// 必须以数组形式一次性传入 /* bind的特点:绑定this不会立即调用当前函数而是将函数返回..原创 2019-09-02 13:36:07 · 174927 阅读 · 0 评论 -
ES5~6~7 学习笔记数组扩展方法
1. indexOf(value) : 得到值在数组中的第一个下标2. lastIndexOf(value) : 得到值在数组中的最后一个下标3.forEach(function(item, index){}) : 遍历数组4. map(function(item, index){}) : 遍历数组返回一个新的数组,返回加工之后的值5. filter(function(item, ind...原创 2019-09-02 13:20:01 · 159056 阅读 · 0 评论 -
ES5~6~7学习笔记 Object扩展方法create 和 defineProperties
1. Object.create(prototype, [descriptors]) * 作用: 以指定对象为原型创建新的对象 * 为新的对象指定新的属性, 并对属性进行描述 - value : 指定值 - writable : 标识当前属性值是否是可修改的, 默认为false - configurable: 标识当前属性是否可以被删除 默认为false ...原创 2019-09-02 12:19:06 · 139037 阅读 · 0 评论 -
ES5~6~7学习笔记 json对象
JSON转字符串JSON.stringify(obj/arr)转换为json对象var obj={name:'bob'}obj = JSON.stringfy(obj)字符串转JSON对象obj = JSON.parse(obj)原创 2019-09-01 17:53:34 · 139760 阅读 · 0 评论 -
ES5~6~7的学习笔记
ES6的使用示例一、使用方法示例,开头加上'use strict'<script type='javascript'> 'use strict' // 错误示例 username='mike' /**正确示例*/ var username='mike'</script>笔记一 :必须使用var声明变量,防止污染全局变量示例二、...原创 2019-09-01 17:45:12 · 147736 阅读 · 0 评论