javaScript
真的是沐白
前端开发
展开
-
sumOf的柯里化函数
满足 sum(1, 2, 3, 4).sumOf() 输出 10满足 sum(1)(2, 3, 4).sumOf() 输出 10满足 sum(1)(2)(3, 4).sumOf() 输出 10满足 sum(1)(2)(3)(4).sumOf() 输出 10function sum(...args) { const num = args.reduce((p, c) => p + c, 0) const fn = (...args) => { return sum.原创 2021-01-13 19:54:50 · 986 阅读 · 0 评论 -
求数组的深度
function getArrayDepth(arr) { const depths = [] arr.forEach( ele => { let depth = 0 if (Array.isArray(ele)) { depth = getArrayDepth(ele) } depths.push(depth) }) retur...原创 2020-02-10 19:18:36 · 1580 阅读 · 0 评论 -
从一段代码讲讲我理解的事件循环机制
setTimeout(function () { console.log('8')}, 0)async function async1() { console.log('1') const data = await async2() console.log('6') return data}async function async2() { return ne...原创 2019-10-21 21:54:05 · 213 阅读 · 0 评论 -
class field所带来的一些问题
public field 和private field组成了class field,这篇文章不讲private field ,只谈public field所带来的问题我会根据例子来讲解,这样会更好理解一些class SafeUser { constructor() { this.password = '1234' }}上面代码非常简单,就是声明了一个...原创 2019-06-23 19:49:32 · 2278 阅读 · 0 评论 -
resize函数防抖和节流写法
// 防抖function debounce(operate, delay) { let time = null let timer = null let newTime = null function task() { newTime = +new Date() if(newTime - time < delay){ ...原创 2019-06-13 14:58:52 · 3917 阅读 · 0 评论 -
不同窗口通信的postMessage方法的详解
窗口之间的通信,如果是不同域的,会受到浏览器的同源策略的限制,这篇文章介绍的postMessage方法可以解决这个问题postMessage是window的属性,一般用于跨域窗口之间的通信我们直接从实例中来学这个方法, 这样会理解的更深我们现在要实现https://v.qq.com/和https://ke.qq.com之间的通信在v.qq.com的控制台中输入下面代码,打开ke....原创 2019-06-12 23:46:24 · 3945 阅读 · 0 评论 -
node代理跨域获取图片
我们知道,img标签是不会有跨域的问题的,所以我们可以直接在img标签中利用src属性引用其它域中的图片,但是如果出现下面的情况呢?<img src="http://pics6.baidu.com/feed/5bafa40f4bfbfbed9f8a1ef376c06332aec31f1a.jpeg?token=7de2efd6c5a751773e7b13a244a38d3f&s...原创 2019-03-27 16:15:12 · 1549 阅读 · 1 评论 -
42. Trapping Rain Water
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.The above elevation map is represented by array...原创 2019-02-12 14:33:37 · 139 阅读 · 0 评论 -
函数里的this指向问题
1.当函数没有用作构造函数时,this指向window2.用作构造函数时,this指向新生成的对象下面就用这个知识点来做道题目,下列函数的执行结果是什么function Foo(){ getName = function (){ console.log(1); }; return this;}Foo.getName = function(){ console...原创 2018-08-23 12:40:16 · 713 阅读 · 0 评论 -
一道骚气的js题
function a(xx) {this.x = xx; return this}var x = a(5);var y = a(6);console.log(x.x);console.log(y.x);直切主题,看上面的代码,最后的输出是什么?先不急,我们一步一步分析:首先预编译的环节之后:x=undefined, y = undefined, a = function...原创 2018-12-30 14:18:54 · 526 阅读 · 2 评论 -
for in 循环遍历对象遇到的问题
当原型链上的可枚举属性和目标对象的属性同名时,原型链上的同名属性会被忽略 a = {name: 'wenjun'}a.__proto__.name = 'ye';for(item in a) console.log(item) // namea.__proto__.name2 = 'ye';for(item in a) console.log(item) // name name...原创 2018-11-19 21:45:53 · 1703 阅读 · 0 评论 -
js函数作用域例题
下面代码输出是什么?function fun(n, o){ console.log(o); return { fun : function(m){ return fun(m, n); } }}var a = fun(0);a.fun(1);a.fun(2);a.fun(3);var b = fun(0).fun(1).fun(2).fun(3);var...原创 2018-10-22 14:17:26 · 574 阅读 · 0 评论 -
addColorStop()和createLinearGradient()方法
createLinearGradient:这个是canvas的context的一个方法,参数按顺序是x0, y0, x1, y1,按我的理解其实就是定义了一根线,颜色沿着这条线的指向进行渐变addColorStop:这个方法有两个参数,按顺序是梯度,color,梯度的取值要在0-1之间,不然会报错,这个方法决定了完成颜色渐变所需的长度,从0到1,意味这渐变知道长度结束才完成,这里的长度指的...原创 2018-10-19 16:44:50 · 2248 阅读 · 0 评论 -
bind小题目
let father = {};let son = {};function show(){ console.log(this); return this;}let newShow = show.bind(father);let newShow1 = newShow.bind(son);console.log(newShow);console.log(newShow...原创 2018-09-18 19:50:26 · 147 阅读 · 0 评论 -
输入框的value问题(DOM的property和attribute)
问题描述:用js给input赋值的一般采用以下两种方式:一、i.value=200;二、i.setAttribute('value',300);已上两种看似都是给value赋值,但是结果去不同。如图,在控制台里一步步执行代码结果:i=document.getElementById('search-input');i.value;i.value=200;i.value;...转载 2018-09-03 21:21:24 · 526 阅读 · 0 评论