lhyt

Results 63 issues of lhyt

> 如果觉得没有面试题,那么lodash每一个方法就可以当作一个题目,可以看着效果反过来实现,以不同的方法实现、多种方法实现,巩固基础。除了某些一瞬间就可以实现的函数,下面抽取部分函数作为试炼。时代在进步,下文所有的解法都采用es2015+ 本文实现方法都是看效果倒推实现方法,并进行一些拓展和思考,和源码无关。lodash这个库在这里更像一个题库,给我们刷题的 能收获什么: - 修炼代码基本功,了解常见的套路 - 了解到一些操作的英文命名和规范 - 积累经验,面对复杂逻辑问题可以迅速解决 - 也许可以查到自己的js基础知识的漏洞 注意: - 三星难度以上的会具体拓展和讲解 - 文中使用的基本都是数组原生api以及es6+函数式编程,代码简洁且过程清晰 - 如果说性能当然是命令式好,实现起来稍微麻烦一些而且比较枯燥无味 - 时代在进步,人生苦短,我选择语法糖和api。面临大数据的性能瓶颈,才是考虑命令式编程的时候 # assignIn - `_.assignIn(object, [sources])`这个方法类似 Object.assign。 但是它会遍历并继承来源对象的属性。注意: 这方法会改变源对象 -...

> 满天星斗、炫动的粒子、大量的元素交互,看起来是很炫酷。作为前端的我们,看见大量的节点,花哨的动画,忽然为浏览器感到心疼。前端工程师,身为一位圆梦者,如何实现出来,而且效果炫酷呢?下面,我们基于**threejs**进行逐步进行探究 [demo地址](https://codesandbox.io/embed/static-gjtyz?fontsize=14&hidenavigation=1&theme=dark) # 如何构建粒子世界 ## 基于THREE.CSS3dObject ![image](https://user-images.githubusercontent.com/33994612/69903104-65c8b880-13d0-11ea-99d8-348cf00d2799.png) `CSS3dObject`这个对象,可以让我们像操作threejs对象那样来操作div,使用threejs丰富的api来实现css+div的3d效果。实际上最终效果就是把threejs的参数转化为css的matrix。我们看一段简单的代码,这是创建一个div元素,然后使用three的api控制它的位置: ```js const element = document.createElement("div"); element.className = "element"; element.style.width = "4px"; element.style.height = "4px"; element.style.borderRadius = "50%"; const object = new...

> 如果觉得没有面试题,那么lodash每一个方法就可以当作一个题目,可以看着效果反过来实现,以不同的方法实现、多种方法实现,巩固基础。除了某些一瞬间就可以实现的函数,下面抽取部分函数作为试炼。时代在进步,下文所有的解法都采用es2015+ 本文实现方法都是看效果倒推实现方法,并进行一些拓展和思考,和源码无关。lodash这个库在这里更像一个题库,给我们刷题的 能收获什么: - 修炼代码基本功,了解常见的套路 - 了解到一些操作的英文命名和规范 - 积累经验,面对复杂逻辑问题可以迅速解决 - 也许可以查到自己的js基础知识的漏洞 注意: - 三星难度以上的会具体拓展和讲解 - 文中使用的基本都是数组原生api以及es6+函数式编程,代码简洁且过程清晰 - 如果说性能当然是命令式好,实现起来稍微麻烦一些而且比较枯燥无味 - 时代在进步,人生苦短,我选择语法糖和api。面临大数据的性能瓶颈,才是考虑命令式编程的时候 > 函数系列的总体难度比之前的数组、集合系列都要大一些。恰好,lodash函数系列的方法是面试中经常会问到的 # bind - `_.bind(func, thisArg, [partials])`创建一个函数 func,这个函数的...

> 如果觉得没有面试题,那么lodash每一个方法就可以当作一个题目,可以看着效果反过来实现,以不同的方法实现、多种方法实现,巩固基础。除了某些一瞬间就可以实现的函数,下面抽取部分函数作为试炼。时代在进步,下文所有的解法都采用es2015+ 本文实现方法都是看效果倒推实现方法,并进行一些拓展和思考,和源码无关。lodash这个库在这里更像一个题库,给我们刷题的 能收获什么: - 修炼代码基本功,了解常见的套路 - 了解到一些操作的英文命名和规范 - 积累经验,面对复杂逻辑问题可以迅速解决 - 也许可以查到自己的js基础知识的漏洞 概念: - SameValue标准: 目前已有等价的api——Object.is(a, b),表示a和b在SameValue标准下是否相等。Object.is和===不同的地方在于,可以判断NaN和NaN相等,但是0 和 -0是不相等 - SameValueZero标准: 与SameValue差别仅仅在于,此标准下0和-0是相等的,Array.prototype.includes、Set.prototype.has内部就是使用SameValueZero 注意: - 三星难度以上的会具体拓展和讲解 - 文中使用的基本都是数组原生api以及es6+函数式编程,代码简洁且过程清晰 - 如果说性能当然是命令式好,实现起来稍微麻烦一些而且比较枯燥无味 -...

> 如果觉得没有面试题,那么lodash每一个方法就可以当作一个题目,可以看着效果反过来实现,以不同的方法实现、多种方法实现,巩固基础。除了某些一瞬间就可以实现的函数,下面抽取部分函数作为试炼。时代在进步,下文所有的解法都采用es2015+ 本文实现方法都是看效果倒推实现方法,并进行一些拓展和思考,和源码无关。lodash这个库在这里更像一个题库,给我们刷题的 能收获什么: - 修炼代码基本功,了解常见的套路 - 了解到一些操作的英文命名和规范 - 积累经验,面对复杂逻辑问题可以迅速解决 - 也许可以查到自己的js基础知识的漏洞 概念: - SameValue标准: 目前已有等价的api——Object.is(a, b),表示a和b在SameValue标准下是否相等。Object.is和===不同的地方在于,可以判断NaN和NaN相等,但是0 和 -0是不相等 - SameValueZero标准: 与SameValue差别仅仅在于,此标准下0和-0是相等的,Array.prototype.includes、Set.prototype.has内部就是使用SameValueZero 注意: - 三星难度以上的会具体拓展和讲解 - 文中使用的基本都是数组原生api以及es6+函数式编程,代码简洁且过程清晰 - 如果说性能当然是命令式好,实现起来稍微麻烦一些而且比较枯燥无味 -...

> ts出了几年,之前用ts还可能显得逼格高,但是ts3.0后开始更加火了,再也不是“加分项”了,更加像是“必会”的了。之前对于ts,一些人人为了用而用,可能只是为了让简历的经历好看一点,并没有发挥它的作用。他们对于ts只是一些简单、低级的特性的应用,稍微麻烦一点的,就开始使用any。下面一步步来探究进阶的一些用法,一步步解决一些ts棘手的类型问题,逐步摆脱一些情景对any的依赖 强烈建议使用vscode,因为都是同一家,对ts的支持和开发体验是非常棒的,大大增加了开发效率和质量,避免各种错误。 # 泛型 定义一种type或者interface,可以传入泛型参数,达到类型复用的效果: ```ts // 一个对象所有的key都是同一类型 // before const o: { a: number; b: number } = { a: 1, b: 2, } // after type OneType...

# 前言 > 树形组件的需求,很多人遇到都觉得头疼、逻辑复杂,除了展示之外,还要有增删该查的逻辑。一般树形组件具有多个层级,如果当前层级有下一个层级,会有像`children、list`等属性,数据结构一般就是 ```javascript const tree = [ { name: 'a', id: 1, }, { name: 'b', id: 2, children: [ { name: 'c', id: 3 } ] },...

> Google 前几天公开了一篇谷歌的工程实践文档。而且文档的内容都是跟 code review 相关的内容,里面包含了 Google 工程师如何进行 code review 的内容,以及 code review 指南。 原文地址: https://google.github.io/eng-practices/review/reviewer/ 本文的名词解释: - cr: code review - cl: change list,大概意思是指这次改动 - reviewer: cr的那个review人 - nit:...