《JavaScript忍者秘籍》基础知识

优秀的测试用例具有三个重要的特征 1.可重用性:测试结果应该是高度可再生的,测试不依赖于外部因素。 1.简单性:测试应该只专注于测试一件事。 1.独立性:测试用例应该独立执行。 构建测试的两种主要方法 1.解构型测试用例:在消弱代码隔离问题时进行创建,以消除任何不恰当的问题。 1.构建型测试用例:从一个大家熟知的良好精简场景开始,构建用例,直到能够重现 bug 为止。 例子:构建型测试用例 1.创建一个精简的测试用例时,可以从几个已经包含最小功能的 HTML 文件开始,这些不同的起始文件可以包含不同的功能。例如,一个用于 DOM 操作,一个用于 Ajax 测试,一个用于动画等等。下面是一个测试 DOM 操作的测试用例。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!DOCTYPE html> <html> <script src="dist/jquery.js"></script> <script> $(document).ready(function () { $("#test").

《Git In Practice》 Notes

Remote Operation The command git remote prune <git-repo-path> deletes any remote references to branches that have been deleted from the remote repository by other users. See more about this . Please be very careful when you run command git push --forced, it’s very dangerous because it will rewrite all you related histories in the remote side.

Markdown语法的一些难记住的点

唯一的限制是那些块级HTML元素,如 <div> , <table> , <pre> , <p> 等,必须使用空行与相邻内容分开,并且块元素的开始和结束标签之前不要留有空格或 TAB。 不要在块级 HTML 元素内使用 Markdown 格式化命令,但对于行内标签,比如 <span> , <del> 等,你可以随便用,如果需要,甚至可以使用 <a> 标签来代替 Markdown 自身的链接或图片语法。 不同于这些块级 HTML 元素,在 HTML 行内元素内的 Markdown 语法标记会被正确处理。 在 Mardown 代码行内标记和块级标记之中,< 和 & 始终会被自动编码。这使得在 Markdown 文件中书写 HTML 代码更容易。 正常的段落不要以空白或 TAB 字符开始。

《正则表达式必知必会》笔记

下面是一些平时经常会遗忘的正则表达式的知识点: . 只能匹配除换行符以外的任何单个字符。 在相关书籍中,专业名词普通字符的意思就是纯文本,而元字符代表的含义是特殊字符。 当你使用[A-z]去匹配所有的字符时,要记得这两个字符的 ASCII 码中还有 [ 和 ] 等。 字符 - 只是一个普通的字符。 [ ] 中的 ^ 用来反义之后所有在当前括号里的数字。 \b :回退符,\f :换页符,\n :换行符,\r :回车符,\t :制表符,\v :垂直制表符。 \r\n 用于 Windows 系统中的文本行的结束标签,\n 用于 Unix 类系统。 \d 用于匹配数字, \w 用于匹配字母或数字或下划线,\s 用于匹配任意空白字符的含义。注意:当字母 d 、 w 、 s 是大写时,表示取反。

HTML5 数据存储

简介 在HTML5之前,本地存储的唯一方案是使用 cookie1,缺点如下: 需要处理过期数据 同一个域中的每一次请求都会携带所有的 cookie 安全性 HTML5 新增了更好、更便捷的本地存储功能2。它们一般具有如下优点: 这些数据可以无限期地保存在用户计算机上 不会主动跟随 HTTP 请求发送到服务端 更大的存储空间 方便使用 JavaScript 操作 对比如下: 存储类型 JS对象 作用和特点 本地存储 localStorage 用于长期保存网站的数据 会话存储 sessionStorage 用于临时保存针对一个窗口(标签页)的数据。在用户关闭窗口或标签页前,这些数据存在,之后会被删除,不受页面导航影响 数据库 indexDB3 创建离线应用,优化性能和改进本地存储 无论本地存储还是会话存储,都是与网站所在的域联系在一起的。如果是不同的网站页面,就不能同时访问一个数据源,类似地,如果使用不同的用户名登录,那么存取的也将是不同的本地数据。 存储/读取数据 API: 使用键值对的方式来操作 storage 对象 1 2 3 4 5 localStorage.setItem(key, value); localStorage["key"] = value; value = localStorage.