趣文
2024路在何方
某行业全球top1企业的前端主管
展开
-
JSON.stringify的三个参数你都用过吗?
前段时间勾股有提到stringify是支持三个参数,刷新的了我的认知,后来查到文档才发现还真的是支持三个参数的。参考资料:stringifystringify方法顾名思义,就是把JSON序列换,其语法如下:JSON.stringify(value[, replacer [, space]])注意到它接收三个参数,后面2个参数是可选的。只传一个参数var data = {name:"niuzai",info:{age:18,sex:"male"}};JSON.stringify(data);原创 2021-08-04 16:37:05 · 366 阅读 · 0 评论 -
node_modules 困境
本文来源于:node_modules 困境请点击查看较好,推荐!转载 2021-05-17 11:02:45 · 220 阅读 · 0 评论 -
虚拟DOM与DOMDIFF的原理(二)
关于虚拟DOM请看文章:点击进入任意门什么是DOMDIFF?DOMDIFF是用于比较两个虚拟DOM的区别,本质其实就是比较两个对象的区别(虚拟DOM本质是一个对象).DOMDIFF的作用根据两个虚拟对象创建补丁,这个补丁可以描述改变的内容,也就是可以描述两个虚拟DOM的差异,然后将这个补丁用来更新DOMDOMDIFF的优化策略规则:当节点类型相同时候,去看一下属性是否相同...原创 2019-04-17 23:50:02 · 377 阅读 · 0 评论 -
虚拟DOM与DOMDIFF的原理(一)
虚拟DOMvirtual dom,也就是虚拟节点。它是通过JS的Object对象模拟DOM中的节点,然后再通过特定的render方法将其渲染成真实的DOM节点。创建虚拟DOM本文基于react来写,但是其实跟react也没多大关系通过createElement方法来创建虚拟DOM,这个方法有三个属性type、props、children首先,虚拟DOM本身是一个对象,例如:...原创 2019-04-17 23:46:46 · 938 阅读 · 0 评论 -
这道sort题你会了吗?
今天一个携程的前端朋友突然在我睡觉时抛来一个问题,这个问题看似简单,但是却难倒了携程大神,在这里,给大家做下简单分析问题:let arr = [-2, -1, 3];arr.sort();console.log(arr);请问打印出来的结果是多少?大家先不要往下看结果,看了结果会觉得非常简单。就到此,考虑下答案是多少,你的分析思路又是怎么样的。解答首先,我们先来看下MD...原创 2019-02-02 00:01:41 · 359 阅读 · 0 评论 -
如何解决javascript弹窗被阻止?——华为云bug解决
现象近期,客户在使用我们华为云镜像容器服务(SWR)的时候,反馈了一个问题——在镜像构建的源码托管中绑定gitHub或gitee账户的时候,会弹出弹框,但是这个弹框被chrome浏览器禁止。(地址:https://console.huaweicloud.com/swr/?region=cn-east-2#/app/s2i/oauth ,欢迎大家使用华为产品,如有不足,敬请微信(微信号:80...原创 2018-10-10 20:38:23 · 1888 阅读 · 0 评论 -
【Object系列】详解Object.defineProperty与Object.defineProperties()
Object.defineProperty(obj, prop, descriptor)一、定义 该属性能够定义一个对象的新属性,或者修改一个对象已有的属性值,返回这个被处理过的对象 参数: obj:要操作的对象 prop:obj上要定义或修改的属性 descriptor:属性描述器,用于定义或修改该属性的特性。该属性描述器分为两类:数据描述符和存取描述符。 ...原创 2018-09-10 00:04:14 · 3037 阅读 · 0 评论 -
你以为arr.filter遍历的每一项,真的是arr的每一项吗?
想必大家一定用惯了es6中的各类语法,尤其是数组提供的方法,更是让我们对数组的处理获得了极大的便利。 今天我要讲的其实是一些数组中非常简单的方法,但当你真的研究它的时候,你会发现一些奇妙之处。一、初温数组的filter方法let arr = [1,2,3,4,5,6];let newArr = arr.filter(function(item,index){...原创 2018-08-25 23:49:32 · 1236 阅读 · 0 评论 -
一个普通函数的冷僻属性(length、caller、arguments、name、[[Scopes]]和[[FunctionLocation]])
函数的属性 一个普通函数具有哪些属性?先看下图: 可见,一个普通的函数具有8大属性——arguments、caller、length、name、prototype、__proto__、[[FunctionLocation]]、[[Scopes]] 上述8大属性中,最为关键的自然是prototype和__proto__两大属性,但笔者必须照顾下标题的感受,讲讲其他...原创 2018-08-21 21:36:27 · 4638 阅读 · 1 评论 -
【神奇】为什么这类Javascript的数组不能随便使用map方法?
当我们随便给出一个数组,大家都能想到很多数组的方法:pop、push、forEach、find、findIndex、map…(具体方法可以查看>>传送门<<) 然而这些方法的使用,真的像你心目中所想得那么“熟练”吗?让我们一起看下下面的例子:let arr = new Array(3);console.log(arr); 这个结果是什么? ...原创 2018-08-28 22:29:42 · 4631 阅读 · 0 评论 -
10个例子彻底读懂【参数默认值的独立作用域】
函数的参数一旦设立默认值,在函数进行生命初始化时,参数就会形成一个独立的作用域。等到初始化结束,这个作用域就会消失。 举例一:var x = 1;function f(x,y = x){ console.log(y);}f(2); 很多初学者都会认为结果是1,因为y接收的默认值是全局变量x=1,其实不然,这样的结果违背我一开始说这句话——“函数的参数一旦设...原创 2018-08-22 20:52:24 · 812 阅读 · 0 评论 -
ES6解构赋值——让人误会的等号"="
大家知道,Javascript中,”=”的含义主要就是赋值,而有时候,简单的赋值也会让人产生误会。 在讲这种误会前,让我们先来做下下面三道题吧!题目一:function move({x = 0, y = 0} = {}) { return [x, y];}move({x: 3, y: 8}); // [3, 8]move({x: 3}); // [3, 8]...原创 2018-08-12 16:28:54 · 1118 阅读 · 0 评论