![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
JingG459
加油!
展开
-
如何理解及使用闭包
那么闭包到底是啥?根据MDN官方文档是定义:闭包 = 函数 + 周围状态(环境的)的引用 。所以闭包不等于是函数, 为了表述的方便,我称之为闭包结构。先来个超简单的栗子var name = 'lufei'function fn() { console.log(name)}fn+name 就形成了一个闭包的结构function ff() { var name = 'lufei' return function fn() { return name }}//这.原创 2021-11-22 14:45:24 · 1199 阅读 · 0 评论 -
多维数组降维的几种方法
一、数组字符串化 let arr = [[123456], [333], 789] arr += '' arr = arr.split(',') console.log(arr)二、递归 function demo(arr) { var newArr = [] for (var i = 0; i < arr.length; i++) { if (Array.isArray(arr[i])) { // 如..原创 2021-11-14 21:08:14 · 1577 阅读 · 0 评论 -
JavaScript 原生对象、内置对象、宿主对象的区别
我对三者的理解,三个的概念区别分别是:内置(Build-in)对象:总是在引擎初始化阶段就被创建好的对象,是原生对象的一个子集 原生(Naitve)对象:除了内置对象,还包括了一些在运行过程中动态创建的对象 宿主对象:宿主对象不是引擎的原生对象,而是由宿主框架通过某种机制注册到JavaScript引擎中的对象一、原生对象ECMA-262 把原生对象定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。包含 Object、Function、Array、String、Boo.原创 2021-11-14 20:29:16 · 718 阅读 · 0 评论 -
Javascript 创建对象的几种方式
我所熟悉的创建方式有以下几种:一、使用对象字面量的方式{} 代码如下:var person ={ name: "zs", age: 21, family: ["lisi","lisa","wangwu"],}在使用同一接口创建多个对象时,会产生大量重复代码二、使用Object 关键字方式来创建(工厂模式)代码如下:var wcDog = new Object(); wcDog.name="旺财"; wcDog.age=3;...原创 2021-11-13 16:37:46 · 1955 阅读 · 0 评论 -
深拷贝和浅拷贝
一、数据类型数据分为基本数据类型(String, Number, Boolean, Null, Undefined,Symbol)和对象数据类型。1、基本数据类型的特点:直接存储在栈(stack)中的数据2、引用数据类型的特点:存储的是该对象在栈中引用,真实的数据存放在堆内存里引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。二、浅拷贝与深拷贝深拷贝和浅拷贝是只针对Object和Array.原创 2021-11-04 20:42:57 · 133 阅读 · 0 评论 -
ABCD选项的排序方式
Array.prototype.sort()的排序稳定性排序稳定性(stablesorting)是排序算法的重要属性,指的是排序关键字相同的项目,排序前后的顺序不变。const arr = [ 'peach', 'straw', 'apple', 'spork'];const stableSorting = (s1, s2) => { if (s1[0] < s2[0]) return -1; return 1;};arr.sort(stable...原创 2021-11-02 22:02:33 · 2249 阅读 · 0 评论 -
为什么element-ui中的row-key属性要写唯一值
设置表格的数据项为树形结构必须要给表格指定row-key <el-table border :data="list" row-key="id"> <el-table-column label="名称" prop="name" /> <el-table-column label="标识" prop="code" /> <el-table-column label="描述" pr...原创 2021-11-02 08:38:02 · 5102 阅读 · 0 评论 -
项目错误点,难点总结
1.当vue项目中出现,只想显示单选框或者复选框,而不想被点击时可以在el-checkbox-group上绑定:value属性,这个时候就是单向显示了<el-checkbox-group :value="checkedCities"> <div v-for="city in list.options" :key="city.id"> <el-checkbox :label="city.code">{{ city.title }}&...原创 2021-10-31 22:17:16 · 132 阅读 · 0 评论 -
ES6中的扩展运算符
ES6的扩展运算符,它的语法很简单,使用三个点号表示“...”。可以将一个数组转为用逗号分隔的参数序列。 它将可迭代对象展开到其单独的元素中,所谓的可迭代对象就是任何能用for of 循环进行遍历的对象,例如:数组、字符串、Map、Set、DOM节点等。目录基础语法该运算符主要用于函数调用扩展运算符后面还可以放置表达式一、替代数组的 apply 方法使用 Math.max() 函数来获取最大值的用法是: 使用...原创 2021-10-28 21:59:56 · 3248 阅读 · 0 评论 -
数组转成树
普通方法: // 数组转换为树形的函数 export function tranListToTreeData(list) { // 最终要产出的树状数据的数组 const treeList = [] // 所有项都使用对象存储起来 const map = {} // 建立一个映射关系:通过id快速找到对应的元素 list.forEach(item => { if (!item.children) { item.children = []原创 2021-10-26 21:49:46 · 287 阅读 · 0 评论 -
js中的Excel格式问题
最近做项目遇到Excel导入导出的问题,总结一下1. Excel表格导入时,将中文key转为英文keyExcel表格中读入的是姓名,而后端需要的是username[{'姓名':'小张', '手机号': '13712345678'}{.....}]我们需要将他转换为[ {'username':'小张','mobile': '13712345678'}, {.....} ]把一个对象数组中的每个对象的属性名,从中文改成英文思路:对于原数组每个对象来说找出所...原创 2021-10-26 10:41:16 · 818 阅读 · 0 评论 -
JS中的逗号运算符(,)
逗号运算符逗号运算符是二元运算符,它能够先执行运算符左侧的操作数,然后再执行右侧的操作数,最后返回右侧操作数的值。逗号表达式:一般形式:表达式1,表达式2,表达式3,......表达式n求解过程:先计算表达式1的值,再计算表达式2的值,......一直计算到表达式n的值。最后整个表达式的值是表达式n的值。逗号运算符可以实现连续运算,如多个变量连续赋值。var a=1 , b=2 , c=3相当于:var a=...原创 2021-10-21 21:21:36 · 4728 阅读 · 0 评论 -
JS数组reduce()方法详解及高级技巧
reduce()方法可以搞定的东西,for循环,或者forEach方法有时候也可以搞定,那为啥要用reduce()?这个问题,之前我也想过,要说原因还真找不到,唯一能找到的是:通往成功的道路有很多,但是总有一条路是最捷径的,亦或许reduce()逼格更高...1、语法arr.reduce(callback,[initialValue])复制代码reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前.原创 2021-10-21 10:37:07 · 394 阅读 · 0 评论