我理解的前端进阶

简单介绍

  • 前端是一个需要广度的职位,感觉如果多了解上下游各部门的相关技术会对工作有极大的帮助。单从比起技术来,眼界跟逻辑思维其实更重要。
  • 从技术上来说,走出前端那一亩三分地,多接触自己不熟悉的技术。当回头看前端的时候往往会有一种豁然开朗的感觉。
  • 现阶段感觉是要接触不同的技术,换种不一样的思维。因为之前也写过 php(用的是国人 tp 框架),初次接触了 mvc 的思想,后来为学校的公众号也写过后台,用的是 python(Django),然后公司现在用的 java 的 spring 那一套(在疯狂补 java 核心卷 I 中…),后端的路已经很成熟的,前端还在探索属于自己的方式。这样看来是豁然开朗了~
  • 萌新 -> 页面重构 -> 前端开发工程师 -> 大前端 -> 前端打杂 -> 团队打杂

练级之路

可以写出方便维护的代码

  • commonjs/cmd/amd(node/sea.js/require.js)
  • es6 module(babel)
  • webpack
  • mvvm 解决 jq 意大利面条
  • 使用 async/await,promise

可以写出不容易出错的代码

  • 类型检查,不能相信传进来的参数(当然现在有 ts)
  • try-catch 捕获错误
  • window.onerror

可以写出性能比较好的代码

  • 大量 dom 操作的时候可以批量读,批量写,会用缓存
  • 会使用递归分而治之,将大问题分解成相似的小问题

可以灵活使用工具

  • charles/whistle 替换本地文件,模拟数据,代理 host
  • 会用 ps 切图,markman 测量工具
  • 各种带语法提示的小插件
  • sourcemap 定位代码

知道怎么定位到问题

  • 会有 chrome devtool 里面的 network/performance 等,断点调试
  • 网络不通,ping 一下百度

常见问题

跨域

  • jsonp(get)
  • 服务器代理

安全问题

  • xss(不能信任用户的输入,过滤一下输入,转义带有脚本的标签)
  • csrf(所有请求都需要带有 token)

性能问题

关注新技术,并能快速化为己用

  • webaseembly 将 js 转为二进制的规范
  • 小程序
  • pwa

有感而发于公司内部分享 ppt