JavaScript开发者应懂的33个概念

转载自: JavaScript开发者应懂的33个概念

简介

这个项目是为了帮助开发者掌握 JavaScript 概念而创立的。它不是必备,但在未来学习(JavaScript)中,可以作为一篇指南。

本篇文章是参照 @leonardomso 创立,英文版项目地址在这里
由于原版资源都要翻墙,所以本人创立一个中文版,附上关于这些概念在国内的一些文章和视频。
若有觉得更好的文章或者视频,可以贡献出来,觉得有误的,请联系我删除。

更新

若有觉得更好的文章或者视频,可以贡献出来,觉得有误的,请联系我删除。

  • 文章的排序优化,前面的文章是介绍概念,后面的文章是深入解读。
  • 将原文的 “高阶函数” 和 “map, reduce, filter” 合并为 “map, reduce, filter 等高阶函数”
  • 增加 “promise” 概念(替换删除的 “高阶函数”)
  • 2018-10-24 更新:@BuptStEve 贡献的三篇关于” 函数式编程 “方面的文章
  • 2018-12-04 更新:@haner199401 贡献的 @冴羽 “JavaScript 深入之从原型到原型链”

继续阅读全文 »

uni-app开发APP之开发规范和一些注意事项

🌞个人体会

  • 开发快速。uniapp最大的优势就是整合7端开发规范在一起,配合Vue让前端开发人员可以开发出“具有基本功能”的APP(对比flutter来说,uniapp对前端更友好),可以快速开发多端应用。一次编译,多端运行。
  • 接口丰富。DCloud有h5 app经验,同时这部分的API也开放给uniapp可以直接调用,调用的时候同样也是用js引擎调用原生API。很多东西开箱即用,微信支付,消息推送等等。
  • 过于全面。一般项目不需要7端都需要,但是官方必须考虑7端,所以很多东西必须用条件编译区分平台来做。
  • 由于需要适配小程序,提升h5的性能,uniapp屏蔽了dom,规定了自己的规范,使用官方提供的方法可以选择节点,因此市面上的dom操作相关的库都不能使用。复杂特效只能用CSS配合官方接口和vue动态数据绑定来做。个人觉得做复杂动效需要费点时间。
  • 虽然,uniapp是跨7端,但是跨越多的端,由于每种平台上规范不同,即使uniapp尽量统一这些不同的规范,但是仍然需要根据不同平台进行处理,就像排列组合一样,每多一种平台,不是单单的复杂加一,而是复杂加一倍。适合只做一种平台类型软件,但是没有对应平台软件开发工程师,可以跨语言障碍,仅此而已。而不是支持7端,就去做7端。
  • 实际上,很多时候不需要开发出可以运行7、8端运行的程序,况且大部分产品也是天生只适合在某种平台上运行,一味的追求一套代码运行很多的平台,很多平台特有功能或者时说是优势能力因为妥协其他平台被牺牲掉,最后就像有好多短板的木桶一样,搞的产品在哪个平台上都没有优势。还不如针对于某一端做深耕一中平台代码,让前端人员可以用前端代码跨端运行,这也许会更符合实际开发需求,

🌞开发规范

  • 组件不能使用纯HTML标签,不能用js对dom进行操作
  • 接口能力靠近微信小程序规范,数据绑定方式靠近Vue规范,同时补充了APP和页面的生命周期
  • 为了兼容多端运行,建议使用flex布局,配合upx使用
  • 高版本安卓APP发送request请求必须使用https
  • 微信小程序request请求也需要https,同时在小程序管理员后台配置可进行request请求的域名白名单。

继续阅读全文 »

linux上git clone每次都要输入用户名密码

最近新使用一个代码部署运维平台Spug,拉取代码时配置仓库地址,部署机上如果使用http拉取的话需要每次都输入用户名,密码,平台没有提供这种功能,只会执行git clone -v 加上配置的仓库地址,根本没有办法输入用户名和密码,加上公司的私有云上部署的gitlab不支持外网使用ssh拉取仓库,所以只能用http方式拉取,而且还不能每次都要输入用户名密码,网上找了一下解决方法,做个记录。

继续阅读全文 »

npm script

原理

npm脚本的原理非常简单。每当执行npm run,就会自动新建一个 Shell,在这个Shell里面执行指定的脚本命令。因此,只要是Shell(一般是 Bash)可以运行的命令,就可以写在 npm脚本里面。

比较特别的是,npm run新建的这个Shell,会将当前目录的node_modules/.bin子目录加入PATH变量,执行结束后,再将PATH变量恢复原样。

这意味着,当前目录的node_modules/.bin子目录里面的所有脚本,都可以直接用脚本名调用,而不必加上路径。比如,当前项目的依赖里面有Mocha,只要直接写mocha test就可以了。

继续阅读全文 »