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