ES6 尾调用和尾递归

什么是尾调用?尾调用(Tail Call)是函数式编程的一个重要概念,本身非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。function f(x){ return g(x); }上面代码中,函数f的最后一步是调用函数g,这就叫尾调用。以下三种情况,都不属于尾调用。// 情况一 function f(x){ let y = g(x); return y; } /

- 阅读全文 -

为什么Chrome的document.body.scrollTop可以是小数

JavaScript突然发现新版的Chrome的scrollTop可以是一个小数,为什么可以是小数,这么做有什么意义?我可能滚动小数个像素吗?随着市面上各种高分屏,高DPI,都会出现这样的问题设计师的电脑真香,2K屏他毕竟工作在抽象的绘图空间上的,px的概念已经从最初的屏幕物理像素变成了一个长度单位,随着你屏幕dpi的不同,一个px所代表的真实像素数也不同。所以现代的2D渲染系统都是以浮点数定义坐

- 阅读全文 -

jwt 实践应用以及特殊案例思考

JSON Web Token 是 rfc7519 出的一份标准,使用 JSON 来传递数据,用于判定用户是否登录状态。jwt 之前,使用 session 来做用户认证。

- 阅读全文 -

JavaScript异步剪贴板 API

在过去我们只能使用 document.execCommand 来操作剪贴板。不过,这种操作剪贴板的操作是同步的,并且只能读取和写入 DOM。现在 Chrome 已经支持了新的 Async Clipboard API,作为 execCommand 替代品。这个新的 Async Clipboard API 还可以使用 Promise 来简化剪贴板事件并将它们与 Drag-&-Drop API

- 阅读全文 -

React/VUE/JS&input数据简单搜索

关键词:搜索今天在仿制WeChat过程中,思考了下如何去对数据进行检索简单检索通过select分类后输出戳 https://gitlab.com/duobang/developmentlog/issues/80这个被应用在材料申请完成与未完成的筛选通过Input输入关键词简单demo:我觉得这个搜索后续会用得上,今天测试了一把在我们的项目中也依旧可以使用逐个查询判断方法二代码React+TS新建一

- 阅读全文 -

如何用最短的JavaScript代码消耗最多的时间?

在V2上看到了这样一个问题如何用最短的JavaScript代码消耗最多的时间?让函数 f 运行 10s 以上,最终输出 true,代码越短越好。(不能有交互。)// 挑战目标:让函数 f 运行 10s 以上,代码越短越好 function f() { // 在此写入你的代码: // ... } (function() { var now = Date.now; var t

- 阅读全文 -

React生命周期方法

componentWillReceiveProps()该方法会接受新属性对象,让你可以根据新属性设置state,还可以进行其他工作以确保组件状态保持正常。componentWillUpdate()当你的组件再次渲染时,在render()方法前调用(在组件的props或者state发生改变时触发该方法)。componentDidUpdate()在render()函数执行完毕,并且更新的组件已经被同步

- 阅读全文 -

深入理解javascript原型和闭包(5)——instanceof

对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是在typeof在判断引用类型的时候,返回值只有object/function你不知道他到底是一个object还是一个数组,还是new Number这是就需要用到instancceofexfunction Foo(){} var f1=new Foo(); console.log(f1 instance

- 阅读全文 -

js中const,var,let区别

const定义的变量不可以修改,而且必须初始化。const b = 2;//正确 // const b;//错误,必须初始化 console.log('函数外const定义b:' + b);//有输出值 // b = 5; // console.log('函数外修改const定义b:' + b);//无法输出 var定义的变量可以修改,如果不初始化会输出undefined,不会报错。var a

- 阅读全文 -

React关于Value值警告的问题

index.js:1452 Warning: Failed prop type: You provided a value prop to a form field without an onChange handler. This will render a read-only field. If the field should be mutable use defaultValue. Oth

- 阅读全文 -

重排序的两个方法

reverse()方法会反转数组项的顺序exvar values = [1, 2, 3, 4, 5]; values.reverse(); alert(values);这里的初始值是1,2,3,4,5。而调用数组的reverse方法后,其值的顺序变成了5,4,3,2,1 sort()方法在默认情况下,sort()方法按升序排列数组项——即最小的位置位于最前面,最大的值排在最后面,sort()方法

- 阅读全文 -