function addTo80(n ) { + n; } function memoizedAddTo80 (fn) { let cache = {}; return (n) => { /*keyword 'in' to check prop exists*/ if (n in cache) { console.log('from cache') return cache[n] } else { console.log('from calculation') cache[n] = fn(n)…
Sometime you need to check one prop exists on the object and value should not be ´null´ or ´undefined´. One problem people may occur with: const {get} = require('lodash') } const existing = typeof get(obj, 'a') !== undefined // true Here we missed if…
Pluck: Get one prop from the object array: R.pluck(}, {a: }]); //=> [1, 2] R.pluck()([[, ], [, ]]); //=> [1, 3] Props: R.props([, y: }); //=> [1, 2] R.props([, a: }); //=> [undefined, 1, 2] var fullName = R.compose(R.join(' '), R.props(['first…
Radio 和 check boxes是form表单中的一部分,允许用户通过鼠标简单点击就可以选择.当与<textarea>元素的一般JavaScript操纵相比较,这些表单控件(form controls)的JavaScript操纵可以说是大不相同. 一个radio(单选框)与一个复选框(checkbox)的区别 在我们正式开始之前,非常重要的一点就是确定每一个人都清楚知道radio和check box的区别,在一组(a group)radio中你只能选择一个radio,然而,对于check…
1.Object.create() 是什么? Object.create(proto [, propertiesObject ]) 是E5中提出的一种新的对象创建方式,第一个参数是要继承的原型,如果不是一个子函数,可以传一个null,第二个参数是对象的属性描述符,这个参数是可选的. 例如: function Car (desc) { this.desc = desc; this.color = "red"; } Car.prototype = { getInfo: function()…
http://www.codeproject.com/Articles/779303/JSON-and-Microsoft-technologies http://www.codeproject.com/Tips/885448/Google-Map-with-JSON http://stackoverflow.com/questions/14927258/using-json-to-add-markers-to-google-maps-api http://www.cnblogs.com/gaw…
本系列作为Effective JavaScript的读书笔记. ECMAScript标准并没有规定对JavaScript的Object类型中的属性的存储顺序. 可是在使用for..in循环对Object中的属性进行遍历的时候,确实是须要依赖于某种顺序的. 正由于ECMAScript没有对这个顺序进行明白地规范,所以每一个JavaScript运行引擎都可以依据自身的特点进行实现.那么在不同的运行环境中就不能保证for..in循环的行为一致性了. 比方,下面代码在调用report方法时的结果就是不确…
Array: 1. slice() const newAry = ary.slice() 2. concat const newAry = [].concat(ary) 3. spread opreator: const newAry = [...ary] 4. Array.from: const newAry = Array.from(ary) Object: Shadow copy: 1. object.assign: const newObj = Object.assign({}, obj…
本身这句话很好解释,函数有两个主要特点,援引自 陈新 译的<JavaScript模式>: 1.函数是第一类对象: 函数可以在运行时动态创建,还可以在程序执行过程中创建. 函数可以分配变量,可以将它们的引用复制到其他变量,可以被扩展,此外,除少数特殊情况外,函数还可以被删除. 可以作为参数传递给其他函数,并且还可以有其他函数返回. 函数可以有自己的属性和方法. 2.函数提供了作用域 在JavaScript中,没有使用花括号{}语法来定义局部变量的作用域,也就是说,块并不能创建作用域.这也就意味着…
8.1 window 对象 8.1.1 全局作用域 8.1.2 窗口关系及框架 8.1.3 窗口位置 8.1.4 窗口大小 8.1.5 导航和打开窗口 8.1.6 间歇调用和超时调用 8.1.7 系统对话框 8.2 location 对象 8.2.1 查询字符串参数 8.2.2 位置操作 8.3 navigator 对象 8.3.1 检测插件 8.3.2 注册处理程序 8.4 screen 对象 8.5 history 对象 Intervals and Timeouts var num = 0;…