包含标签 javascript 的文章

关于JS模块系统,Webpack做了什么

在实际 JS 开发工作中,我们通常会以模块化的方式进行开发,所以我们用到了babel-loader, ts-loader, 以及webpack,在代码中,经常会用到ES,CommonJS,AMD等多种模块系统混用,所以有必要知晓打包器为我们做了什么让最终代码能够在浏览器等不支持原有模块系统的环境下正常工作。……

阅读全文

Post提交方式下载文件

提要 通常下载文件是直接 GET 访问下载链接,由浏览器默认行为进行下载。对于一些动态生成数据的场景,特别是需要用户提交部分参数,这时候 GET 请求就不合适了,需要 POST 提交进行下载。 Form Post 下载文件 这是浏览器最原生的表单提交,可以设定form元素的method为POST,这样请求格式为applicat……

阅读全文

利用FileReader API预览图片

需求 在 Web 应用程序中,上传图片前进行预览是比较常见的需求。在老式浏览器中,必须先将图片上传至服务器,获取实际链接后嵌入方可预览。随着浏览器 API 的不断丰富,现在利用 FileReader 可以做到图片上传之前就在页面进行预览,提高用户体验。 FileReader & File & Blob FileReader 对象允许 Web 应用程序异步读取存储在用户计算机上的文件(或原……

阅读全文

JavaScript Error继承踩坑记

Error ES6 Class 继承 在 Web App 中,我们通常会创建自定义错误类来区分错误类型。如果使用 ES6 的 Class 语法,那么应该有类似如下写法: class MyError extends Error { constructor (msg) { super(msg) this.message = msg this.name = "MyError" } } 现在我们需要报一个自定义错误,那么有: var err = new MyError("this is a error message") 同时,在流程处理中,可能需要通过错误类型执行不同的处理逻辑代码: if (err instanceof MyError) { // do some job console.log("MyError……

阅读全文

React/Redux应用使用Async/Await

Async/Await Async/Await 是尚未正式公布的 ES7 标准新特性。简而言之,就是让你以同步方法的思维编写异步代码。对于前端,异步任务代码的编写经历了callback到现在流行的Promise,最终会进化为Async/Await。虽然这个特性尚未正式发布,但是利用 babel polyfill 我们已经可以在应用中使用它了。 现在假设一个简单……

阅读全文