- 博客(8)
- 收藏
- 关注
原创 JS -- 函数组合
什么是函数组合?就是将需要嵌套执行的函数平铺。嵌套执行指的是,一个函数的返回值将作为另一个函数的参数。一个简单的栗子:var compose = function(f,g) { return function(x) { return f(g(x)); };};这个函数可以完成两个函数的嵌套转平铺。那么如果是支持多个参数的呢?也就是说,后一个函数的返回值总是作为前一个
2017-10-31 21:42:51 1069
翻译 JS 如何判断两个对象相等
前提条件: 1、NaN 和 NaN 相等 2、[1, 2] 和 [1, 2] 相等 3、{value: 1} 和 {value: 1} 相等 4、1 和 new Number(1) 相等 5、’Curly’ 和 new String(‘Curly’) 相等 6、true 和 new Boolean(true) 相等下面我们来一步一步的讨论+0 & -0在很多情况下,+0 -0
2017-10-30 21:12:39 8059
原创 JS复习 -- 作用域链
作用域链属于执行上下文的属性之一。咦?你问我执行上下文是什么: 当JS代码执行一段可执行代码的时候,就会创建对应的可执行上下文。每个执行上下文都有三个重要属性: 1、变量对象 2、作用域链(后面我们就会了解,作用域链其实就是变量对象组成的链) 3、this好了,言归正传了。当js执行过程中,需要查找一个变量的时候,会先从当前上下文的变量对象中查找。但是如果没找到,就会从词法层面上(一定注意这
2017-10-30 16:51:08 410
原创 JS复习 -- 类型判断
typeof注意,虽然我们可以写:console.log(typeof('miao~')) // string但是,typeof却是一个运算符,就像加减一样!它的真实身份是一个一元操作符。因此,人家的正经写法是:console.log(typeof 'miao~') // string当我们使用typeof来判断JS的六种基本数据类型的时候,返回的值分别是:Undefined -- undefine
2017-10-29 10:12:30 866
原创 JS复习 -- 函数柯里化
柯里化,该词来源于英文单词Currying,感觉是好深奥的一个词。 我记住它的方式是:柯里化 –> 颗粒化。也就是将使用多个参数的函数转化成一系列使用一个参数的函数的方法。颗粒化嘛。例子:function add(a, b) { return a + b;}// 执行 add 函数,一次传入两个参数即可add(1, 2) // 3// 假设有一个 curry 函数可以做到柯里化var
2017-10-28 10:39:03 717
原创 JS复习 -- 执行上下文栈
思考题:下面两段代码有何不同:var scope = "global scope";function checkscope(){ var scope = "local scope"; function f(){ return scope; } return f();}checkscope();var scope = "global scope";
2017-10-27 16:02:51 377
原创 JS 防抖
没有防抖:var count = 1;var container = document.getElementById('container');function getUserAction() { container.innerHTML = count++;};container.onmousemove = getUserAction;此时,鼠标移动,getUserAction方法就会频
2017-10-27 11:05:06 578
原创 Mongoose populate方法
最近好忙啊,好久没有来写博客了~ 干巴蝶! 还是那句话,写一遍真的比看一遍要好很多!populate方法提供外键填充的功能。由于Mongoose是极具JavaScript特点的程序库,提供了极其简单和强大的填充功能,因此,populate不止可以填充单个文档,也支持多文档,甚至直接填充对象!外键引用在定义Schema字段时,可以添加ref属性来指向另一个Schema。 该ref属性在此后被填充(
2017-10-26 16:20:34 1632
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人