codingmeup

Results 172 comments of codingmeup

# 开篇闲扯 前一段时间的一个案子是开发一个有声课件,大致就是通过导入文档、图片等资源后,页面变为类似 PPT 的布局,然后选中一张图片,可以插入音频,有单页编辑和全局编辑两种模式。其中音频的导入方式有两种,一种是从资源库中导入,还有一种就是要提到的录音。 说实话,一开始都没接触过 HTML5 的 Audio API,而且要基于在我们接手前的代码中进行优化。当然其中也踩了不少坑,这次也会围绕这几个坑来说说感受(会省略一些基本对象的初始化和获取,因为这些内容不是这次的重点,有兴趣的同学可以自行查找 MDN 上的文档): - 调用 Audio API 的兼容性写法 - 获取录音声音的大小(应该是频率) - 暂停录音的兼容性写法 - 获取当前录音时间 # 录音前的准备 开始录音前,要先获取当前设备是否支持 Audio API。早期的方法 `navigator.getUserMedia` 已经被...

# 字谜 使用递归。对于给定字符串中的每个字母,为字母创建字谜。使用map()将字母与每部分字谜组合,然后使用reduce()将所有字谜组合到一个数组中,最基本情况是字符串长度等于2或1。 ```js const anagrams = str => { if (str.length acc.concat(anagrams(str.slice(0, i) + str.slice(i + 1)).map(val => letter + val)), []); }; // anagrams('abc') -> ['abc','acb','bac','bca','cab','cba'] ``` #...

# JS中的数组过滤 多条件多数据筛选 ```js //根据名字和年龄多元素筛选 export function multiFilter(array, filters) { const filterKeys = Object.keys(filters) // filters all elements passing the criteria return array.filter((item) => { // dynamically validate all filter...

``` /** * 转换为二维数组 * @param nodes * @param parentId * @returns {Array} */ function toArray(nodes, parentId = '') { if (!nodes) return [] var childKey = 'children' var r...

### 原生实现 JS New 运算符 ```js function Student(){ } var student = new Student(); typeof Student === 'function' // true student.constructor === Student; Student.prototype.constructor === Student; ``` **做了哪些事情呢** - 创建了一个全新的对象。...

## 原生实现 call apply bind polyfill address https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/bind 通过定义简单说一下call和apply方法,他们就是参数不同,作用基本相同。 1. 每个函数都包含两个非继承而来的方法:apply()和call()。 2. 他们的用途相同,都是在特定的作用域中调用函数。 3. 接收参数方面不同,apply()接收两个参数,一个是函数运行的作用域(this),另一个是参数数组。 4. call()方法第一个参数与apply()方法相同,但传递给函数的参数必须列举出来。 直接看个简单的demo ```js var jawil = { name: "jawil", sayHello: function (age) { console.log("hello,...

### 原生实现Promise [ISSUE 39](https://github.com/CodingMeUp/AboutFE/issues/39)

### 一个合格的中级前端工程师需要掌握的 28 个 JavaScript 技巧 及 JS 实现 https://juejin.im/post/5cef46226fb9a07eaf2b7516#heading-29

--- Draft.js学习小结(基础篇) --- # 综述 Draft.js是一个基于React的用来构建富文本编辑器的框架,由一个不变的模型和跨浏览器的差异的抽象来驱动。 Draft.js使得构建任何类型的富文本输入变得很容易,无论你是只想支持一些内联文本样式或者是构建一个用于写长篇的文章的复杂的文本编辑器。 Draft.js在2016年2月的React.js Conf中被介绍。 - 安装 当前的Draft.js被分布在npm。它依赖于React和ReactDOM,所以它们也必须被安装。 > npm install --save draft-js react react-dom - API公告 在开始之前,请注意,我们正在通过API改变存储在Draft中的实体。目前,master分支支持新旧API。我们希望release分支也能尽快在v0.10.0支持。这样一来,我们将在v0.11.0删除旧API。这次更新还包括文档如何升级。如果你有兴趣来及时帮忙,或者跟踪进度,请在issue 839下面跟帖。 - 例子 ```javascript import React from 'react';...

> 知乎上看到的一篇文章:Vuex、Flux、Redux、Redux-saga、Dva、MobX([https://zhuanlan.zhihu.com/p/53599723)](https://zhuanlan.zhihu.com/p/53599723%EF%BC%89) [你链接多带了个 ”)“, 点这访问](https://zhuanlan.zhihu.com/p/53599723)