20190916 前端开发日报

JavaScript 实现超小型语法编译器玩具;vue项目整合Eslint和stylelint规范代码;vue源码分析之计算属性;javascript基本语法学习总结;JavaScript历史学习总结;JavaScript数据结构 – 队列;vue的渲染过程;web网络安全

  1. JavaScript 实现超小型语法编译器玩具 本篇文章是笔者精读 the-super-tiny-compiler 的源代码后的总结,笔者特别推荐大家去读,否则看此篇文章容易一头雾水。 首先,建立对 ast 抽象语法树的初步了解,大家可以在astexplorer 这个网站上输入一段 javascript 代码,在右侧面板中查看生成的 ast 语法树。 比如输入 add(3, div(8, 2)) (解析器默认挑选…
  2. vue项目整合Eslint和stylelint规范代码 最近在搭建项目框架,想着上一个项目代码风格各异,就想着在新项目中引入Eslint来规范团队成员代码风格,保持统一,也方便大家维护代码,减少不必要的错误。前端应用愈加复杂,代码规范问题必须通过强制的方式保持统一。以下是团队逐渐摸索出的一些配置,各取所需。 Eslint配置 在用vue-cli3搭建项目的过程中就会问你…
  3. vue源码分析之计算属性最近总被问道vue的计算属性原理是什么、计算属性是如何做依赖收集的之类的问题,今天用了一天时间好好研究了下源码,把过程基本捋顺了。总的来说还是比较简单。
  4. javascript基本语法学习总结 语句和表达式 表达式和语句的区别在于,语句是为了进行某种操作,一般情况下不需要返回值,而表达式是为了得到值。 一般情况下,在 javascript 中每一行就是一个语句。 let a = 1 + 3 这是一条赋值语句,其中 1+3 就是语句。 标识符 在 javascript 中,第一个字符可以是 Unicode 字符或或者 $ 或者 _ …
  5. JavaScript历史学习总结 javascript 历史 1994年网景公司,发布了 Netscape 浏览器,因此急需一门脚本语言,使得网页可以和人互动。 1995年网景公司,录用的 Brendan Eich,让他担任这门语言的设计师。 公司要求这门语言必须看上去“与 java 足够相似”,但要比 java 简单,要让非专业的网页制作者也能很快的上手。 但 Brendan Eich 对 …
  6. JavaScript数据结构 – 队列 如果你问我,人能否改变自己的命运,我也不晓得。但我晓得,不认命,就是我们这代人的命。 基础知识就像是一座大楼的地基,它决定了我们的技术高度。 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一。 正文 队列被用在很多地方,比如提交操作系统执行的一系…
  7. vue的渲染过程 Vue的模板编译在$mount之后,通过compile方法,经过parse、optimize、generate方法,最后生成render function来生成虚拟DOM,虚拟DOM通过diff算法,来更新DOM。 具体功能如下: parse 函数解析 template optimize 函数优化静态内容 generate 函数创建 render 函数字符串 parse 在了解 parse 的过…
  8. web网络安全XSS称为跨站脚本攻击,原理就是攻击者往web页面中恶意插入可执行网页脚本代码,用户在浏览该页的时候,嵌入在网页中的脚本会执行,从而达到获取用户信息或者其他侵犯用户安全隐私的目的。同时XSS又分为三类:非持…
  9. 前端调试指南指北 描述:form表单中存在button和table,table中含有input搜索框,在input中输入内容后,按回车键(Enter键),会自动触发form表单提交。 form主要代码如下: <form id="form" method="post"> <div class="main-actions"> <div class="row"> …
  10. js并查集算法// 班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。// 如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。// 给定一个 N…
  11. Vue 源码剖析 —— 模板编译原理 日常工作中可能大家或多或少的在 JS 中使用 HTML 渲染模板,特别是在 jQuery 时代,我们可以在模板中方便的使用 JS 表达式甚至是一些指令。在 Vue.js 中模板功能变得更为灵活,这依赖于其强大的模板编译功能。模板编译的主要功能是将模板编译成为渲染函数,而渲染函数则会根据应用状态生成 vnode ,再通过 vnode 进行渲…
  12. 前端自动化测试(一) 目前开发大型应用,测试是一个非常重要的环节,但是大多数前端开发者对测试相关的知识是比较缺乏的。因为可能项目开发周期短根本没有机会写,所以你没有办法体会到前端自动化测试的重要性。
  13. iOS网络(二) WebView和WKWebview与JS的交互 self.webView = initWithFrame:self.view.bounds]; self.webView.delegate = self; ; NSURL *url = URLForResource:@"index.html" withExtension:nil]; NSURLRequest *reqeust = [NSURLRequest requestWi…
  14. GitHub Actions 入门教程 GitHub Actions 是 GitHub 的持续集成服务,于2018年10月推出。 这些天,我一直在试用,觉得它非常强大,有创意,比 Travis CI 玩法更多。 本文是一个简单教程,演示如何使用 GitHub Actions 自动发布一个 React 应用到 GitHub Pages。 …
  15. JavaScript数据类型知识总结 数据类型和运算符属于编程语言的底层知识,一般数据会和条件语句结合使用,制作各种各样的功能。 本文从JS存储数据的编码开始,总结JS在数据类型和运算符之中的重点。 JS如何存储数据? 一般计算机会将十进制的数字,转换成二进制。 用十六进制表示二进制,是因为二进制写起来太慢了。 如果要存储 a 、 b…
  16. 微前端说明书 为什么写 互联网公司技术选型三定律 1. 流行即正义 2. 新鲜即正义 3. 复杂即正义 —— 我 因为最近被问起当前公司的前端产品有没有聚合为微前端的可能性,所以又重新开始审视“微前端”这个话题。差不多一年前写过一篇反驳美团微前端方案的文章。那篇文章更多的是关于“没有必要这么做”,但是“应该如何做”我也并…
  17. 从一次性能优化看Vue的一个“feature” 使用过 Vue 的人都知道,Vue 数据驱动视图是基于 getter 和 setter 的实现的依赖收集,实现数据变动精准更新视图,然后修改 DOM 节点,但是实际上真的那么“精准”吗? 背景知识 首先,我们都知道 Vue 或者 React 得以高效更新的一个核心是使用了 virtual dom (下面称 vdom ),当有数据变动的时候,通过对组件新旧…
  18. 利用 gulp 解决 rollup 中 typescript 与 babel 冲突 最近在用 lerna 重构一个项目,其中一个 package 是使用 rollup 作为脚手架的,需要使用 ts 对其进行重写,但是发现在使用 rollup 时,ts 只能被编译为 js,而之后却不能用 babel 编译为 es3. 首先明确 rollup 需要处理的任务流为 typescript = (rollup-plugin-typescript2) => ES5 = (babel) …
  19. vue快速入门1 首先我们来学习采用简洁的模板语法{{}}来将数据动态渲染到页面,是实时更新的。 首先要创建一个Vue对象,el属性是作用域,data属性是数据源,代码如下所示 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="https:/…

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

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


关注我

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

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

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