underscore tips
1. _.union(*arrays)
返回传入的 arrays(数组)并集:按顺序返回,返回数组的元素是唯一的,可以传入一个或多个 arrays (数组)。_.union([1, 2, 3], [101, 2, 1, 10], [2, 1]); => [1, 2, 3, 101, 10]
2. _.difference(array, *others)
返回的值来自array参数数组,并且不存在于other 数组。_.difference([1, 2, 3, 4, 5], [5, 2, 10]); => [1, 3, 4]
3. _.findWhere(list, properties)
遍历整个list,返回匹配 properties参数所列出的所有 键 - 值 对的第一个值。如果没有找到匹配的属性,或者list是空的,那么将返回undefined。let roleName = _.findWhere(roleList, {id: roleId}).roleName;
==> 找 roleList 中 id 为 roleId 的那个对象并返回该对象,并获取该对象的 roleName
4. _.throttle 和 _.debounce 的差异
- throttle 策略的电梯。保证如果电梯第一个人进来后,15秒后准时运送一次,不等待。如果没有人,则待机。
- debounce 策略的电梯。如果电梯里有人进来,等待15秒。如果又人进来,15秒等待重新计时,直到15秒超时,开始运送。
5. _.difference(array, *others)
返回的值来自array参数数组,并且不存在于other 数组。_.difference([1, 2, 3, 4, 5], [5, 2, 10]); => [1, 3, 4]
6. _.clone(obj)浅拷贝
npm 拓展包 underscore.deepclone
7. _.findIndex(array, predicate, [context])
类似于_.indexOf,当predicate通过真检查时,返回第一个索引值;否则返回-1。tabActive={brandList.findIndex((item, i, arr)=>brandId==arr[i].brandId)+1}
6. _.keys(object) _.keys({one: 1, two: 2, three: 3});=> ["one", "two", "three"]
moment tips
1. Unix偏移量毫秒
moment().valueOf(); 或 +moment();
2. moment 报错
- ‘Deprecation warning: value provided is not in a recognized RFC2822 or ISO fo’
解决方法:moment("Apr 2017", "MMM YYYY")
3. moment获取当天0点0分moment().startOf('day')
3. 设置指定时间moment().set({'hour': 0, 'minute': 0}).subtract(3, 'days')
命令行 及 键盘操作 tips
1. 查看全局安装的npmnpm list -g --depth 0
2. mac自带截图cmd+shift+4
3. 显示隐藏文件夹cmd+shift+.
4. 查看eslint的配置vi ~/.eslintrc.json
5. 解决git报ssh variant ‘simple’ does not support setting portgit config --global ssh.variant ssh
6. npm VS yarn
7. 搬瓦工教程
8. 清除 npm 缓存npm cache clean --force
9.来创建 package.json 文件npm init
10. atom配置eslint
术语 tips
1. GUID
Globally Unique Identifier 全球唯一标识符
2. LHS RHS
JavaScript中在预编译后执行代码时对变量的查询分为LHS(Left-Hand-Side)查询和RHS(Right-Hand-Side)查询。
3. package.json 中 ^ 代表大版本,~ 代表小版本
4. source map
资源映射 – 压缩后代码的 bug 定位
5. 构建
构建就是做这件事情,把源代码转换成发布到线上的可执行 JavaScrip、CSS、HTML 代码,包括如下内容。
- 代码转换:TypeScript 编译成 JavaScript、SCSS 编译成 CSS 等。
- 文件优化:压缩 JavaScript、CSS、HTML 代码,压缩合并图片等。
- 代码分割:提取多个页面的公共代码、提取首屏不需要执行部分的代码让其异步加载。
- 模块合并:在采用模块化的项目里会有很多个模块和文件,需要构建功能把模块分类合并成一个文件。
- 自动刷新:监听本地源代码的变化,自动重新构建、刷新浏览器。
- 代码校验:在代码被提交到仓库前需要校验代码是否符合规范,以及单元测试是否通过。
- 自动发布:更新完代码后,自动构建出线上发布代码并传输给发布系统。
souce tips
1. 『优质』前端频道汇聚
2. 免费视频教程
3. URL链接图标