20190609 前端开发日报

编写一个webpack的loader(1);2019年前端面试题-02;Vue 实现前进刷新,后退不刷新的效果;JS函数和参数;JavaScript逻辑运算符的使用技巧;万古云霄-JavaScript 自检手册;浅析 JS 事件循环之 Microtask 和 Macrotask;玩转 JavaScript 面试:何为函数式编程?

  1. 编写一个webpack的loader(1) 开始之前,先介绍一下loader,下面是 webpack中文网 对 loader 的描述 所谓 loader 只是一个导出为函数的 JavaScript 模块。 loader runner 会调用这个函数,然后把上一个 loader 产生的结果或者资源文件(resource file)传入进去。函数的  this 上下文将由 webpack 填充,并且  loader runner 具有一…
  2. 2019年前端面试题-02px、em和rem的区别 px表示像素 (计算机屏幕上的一个点:1px = 1/96in),是绝对单位,不会因为其他元素的尺寸变化而变化;
  3. Vue 实现前进刷新,后退不刷新的效果在一个列表页中,第一次进入的时候,请求获取数据。点击某个列表项,跳到详情页,再从详情页后退回到列表页时,不刷新。也就是说从其他页面进到列表页,需要刷新获取数据,从详情页返回到列表页时不要刷新。
  4. JS函数和参数 length 是函数对象的一个属性值,指该函数有多少个必须要传入的参数,即形参的个数。 形参的数量不包括剩余参数个数,仅包括第一个具有默认值之前的参数个数。 与之对比的是, arguments.length 是函数被调用时实际传参的个数。 demo1: function foo(a, b=1, c) { console.log(arguments.length); // 3 // …
  5. JavaScript逻辑运算符的使用技巧 ! , && , || 三个运算符是JavaScript中重要的逻辑运算符,本文将介绍这三个运算符在JavaScript实际编程中的有趣使用技巧。 取反运算符(!) 如果对一个值连续做两次取反运算,等于将其转为对应的布尔值,与Boolean函数的作用相同。 !!x // 等同于Boolean(x) 复制代码 两次取反就是将一个值转为布尔值的简…
  6. 万古云霄-JavaScript 自检手册 “你武功虽然花样不少,但博而不精,杂而不纯,你到底那样武功最为精湛,专门专研,炼到如火纯清,方有可能打败郭靖”。一直以来看了好多博客,大大小小的 Demo 也练习了不少,可是都没有系统的整理,习惯不好啊。恰好这段时间需要花费一番功夫好好学习一下前端,是时候梳理一下学习的东西了。JavaScript>Vue>CSS&gt…
  7. 浅析 JS 事件循环之 Microtask 和 Macrotask我们在上一篇 《浅析 JS 中的EventLoop 事件循环》 中提到一个 Event Queue,其实在事件循环中 queue 一共有两种,还有一种叫 Job Queue
  8. 重学前端学习笔记(二十九)–JavaScript中要不要加分号? 笔记说明 重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏, 每天10分钟,重构你的前端知识体系 ,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入winter的专栏学习【原文有winter的语音】,如有侵权请联系我,邮箱:kaimo313@foxmail.com。 一、自动插入分号规则 1.1…
  9. [Vue.js进阶]从源码角度剖析vue-router(三) 在上篇中主要叙述了 vue-router 中生成 $route 对象的时机,路由懒加载的原理,以及异步路由之前执行的一系列路由守卫 在本篇中会讲述: 异步路由解析成功后执行的一系列路由守卫 vue-router 是如何通过路由来实现页面之间的切换 为什么 beforeRouteEnter 守卫需要通过回调的形式获取组件实例 同时…
  10. 编写一个webpack的loader(2) 默认情况下,资源文件会被转化为 UTF-8 字符串 ,然后传给 loader 。但是有些情况下,我们需要操作 二进制 数据。这种时候,只需要设置一个 raw 属性,传给 loader 的就是 二进制 数据。 举例说明 module.exports = function(content) { // doanything }; // 这个设置是关键 module.exports.raw = true; 复…
  11. Ionic3与Ionic4变更对比 不 ionic 了,以后都 angular 了。命名方式都用 angular 的了; provider 也改成 angular 的叫法了,以后请叫 service 首先,我们还是以传统的 angular 来使用之 ionic start <name> <template> ionic start myApp ionic start myApp blank ionic start myApp…
  12. 为vue项目自动设置请求状态 在进入一个页面的时候,一般在获取数据的同时,会先显示一个 loading ,等请求结束再隐藏 loading 渲染页面,只需要用一个属性去记录请求的状态,再根据这个状态去渲染页面就好了 async handler() { this.loading = true await fetch() this.loading = false } 复制代码 虽然是很简单的功能,可是要处…
  13. [技术地图] 从Preact中了解组件和hooks基本原理 React 的代码库现在已经比较庞大了,加上 v16 的 Fiber 重构,很容易初学者陷入细节的汪洋大海,搞懂了会让人觉得自己很牛逼,搞不懂很容易让人失去信心, 怀疑自己是否应该继续搞前端。那么尝试在本文这里找回一点自信吧(高手绕路). Preact 是 React 的缩略版, 体积非常小, 但五脏俱全. 如果你想了解 React 的基本原理…
  14. npm script 的文件监听和自动刷新 文件监听的作用是为了实现自动化,释放双手和精力,提高效率,让开发者更加关注于开发。npm script 文件监听和 grunt、gulp 功能类似。 自动刷新,意思就是改动文件保存后,页面自动刷新,减少日常开发的操作。 代码检查的监听和自动化 代码检查工具 stylelint、eslint、jsonlint 这些对 watch 支持很弱,所以就需要…
  15. JS 里的数据类型 JavaScript语言的每一个值,都属于一种数据类型,共有七种: number 、 string 、 boolean 、 symbol (ES6新增)、 undefined 、 null 、 object 。 注意没有 array 类型也没有 function 类型。 一、number 整数和小数: 1 、 1.1 、 .1 科学记数法: 1.23e2 二进制: 0b11 …
  16. 搞懂 Javascript中this 指向及继承原理 我们知道 JS 有对象,比如 var obj = { name: ‘obj’ } 复制代码 我们通过控制台把obj 打印出来: 我们会发现 obj 已经有几个属性(方法)了。那么问题来了: valueOf/toString/constructor 是怎么来?我们并没有给 obj.valueOf 赋值呀。 上面这个图有点难懂,手画一个示意图: 我们发…
  17. Vuex基础 一个专为Vue.js应用程序开发的状态管理模式 项目复杂使用vuex可以简化逻辑,但是项目简单使用时则会增加逻辑 总结上图: Actions发送请求,响应成功后把数据提交给Mutations Mutations接受到数据后,去更新State中的数据 State管理的数据是响应式的,当数据改变时渲染视图 Vuex使用步骤: …
  18. 深入解析Cocos Creator JSB绑定原理以及应用实践 背景 一直以来,ABCmouse 项目中的整体 JS/Native 通信调用结构都是基于 callStaticMethod <-> evalString 的方式。通过 callStaticMethod 方法我们可以通过反射机制直接在 JavaScript 中调用 Java / Objective-C 的静态方法。而通过 evalString 方式,则可以执行 JS 代码,这样便可以进行双端通信。 虽…
  19. (JS基础)Promise 对象 概述 Promise 对象是一个代理对象(代理一个值),被代理的值在 Promise 对象创建时可能是 未知的 。 Promise 对象有 三种状态 : pending (初始状态)、 fulfilled (成功状态)、 rejected (失败状态)。 Promise 对象的状态一旦由 pending 变为 fulfilled 或 rejected 将 无…
  20. [现场实录] VueConf 2019 尤雨溪演讲总结 距离参加 VueConf 第一届大会已经很久了,yubo 的介绍一如既往地有意思 :heart:,是他的努力保持了大会热情的社区氛围!另一个彩蛋就是 Evan You 带了自己的亲人和孩子来到现场,真的是其乐融融! 本文由【掘金开发者社区】 授权转载 作者:阴明 尤雨溪 @ State of Vue 发展现状 Chrome DevTools 有约 …
  21. JS的排他思想 Tab栏效果切换是常见的功能需求,它实际上运用的就是JS的排他思想。 那么,什么是排他思想呢? 简而言之,就是在监听成立时,先把所有的样式清除为空,随后按照需求添加需要的样式。 二、案例分析 1. 需求分析 鼠标放到上面的li上,li本身变色(添加类),对应的span也显示出来(添加类); 2. 功能实…
  22. 【从头到脚】WebRTC + Canvas 实现一个双人协作的共享画板 作者:江三疯,专注前端开发。欢迎关注公众号前端发动机,第一时间获得作者文章推送,还有各类前端优质文章,致力于成为推动前端成长的引擎。 前言 笔者之前写过一篇 【从头到脚】撸一个多人视频聊天 — 前端 WebRTC 实战(一),主要讲 WebRTC 的一些基础知识以及单人通话的简单实现。原计划这篇写多人通话的,…
  23. 「试着读读 Vue 源代码」初始化前后做了哪些事情 ❓ 首先这篇文章是读 vue.js 源代码的梳理性文章,文章分块梳理,记录着自己的一些理解及大致过程;更重要的一点是希望在 vue.js 3.0 发布前深入的了解其原理。 如果你从未看过或者接触过 vue.js 源代码,建议你参考以下列出的 vue.js 解析的相关文章,因为这些文章更细致的讲解了这个工程,本文只是以一些 demo 演…
  24. 使用JavaScript的Proxy监听对象属性变化并进行类public/private的访问控制 Proxy是ES6的引入的一个对象监听机制。可视为JavaScript对象的一个代理中间件。用户在访问对象时,会触发自定义行为。 监听属性变化 Proxy最简单的用法是可以监听对象属性的变化,比如下面的,当 obj 的 visit 属性改变时,自动更新页面上相应的 input元素值。 <form> <input type="text"…

关注github前端日报 订阅精彩文章

前端日报栏目数据来自码农头条,每日分享互联网上热门的前端开发、移动开发、设计、资源和资讯等,为开发者提供动力,如果觉得内容对你有用,记得分享给你的小伙伴。进入码农头条查看更多


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流