对commonMark.js的理解学习
前几天一直在看markdowm和commonMark.js之间的关系,刚开始还是搞的蛮糊涂的。
今天在大致看工程下面lib文件夹下的js函数的功能:
- from-code-point.js:函数和String类的fromCodePoint功能是一样的,在若浏览器或者平台上不炸支持这个函数的情况下写了自己定义的函数;这个函数的功能一个是把字元转换为unicode字符。
从官网上摘下来的例子:
String.fromCodePoint(42); // "*" String.fromCodePoint(65, 90); // "AZ" String.fromCodePoint(0x404); // "\u0404" String.fromCodePoint(0x2F804); // "\uD87E\uDC04" String.fromCodePoint(194564); // "\uD87E\uDC04" String.fromCodePoint(0x1D306, 0x61, 0x1D307) // "\uD834\uDF06a\uD834\uDF07" String.fromCodePoint('_'); // RangeError String.fromCodePoint(Infinity); // RangeError String.fromCodePoint(-1); // RangeError String.fromCodePoint(3.14); // RangeError String.fromCodePoint(3e-2); // RangeError String.fromCodePoint(NaN); // RangeError
- html5-entities.js:定义了很多的实体,即特殊字符的实体;定义了一个把实体转换为字符的函数(其中看见了一个String.slice(start,end)方法:返回一个字符串,该字符串包括从
start
字符直到end
字符(但不包括该字符)之间的所有字符。不修改原始 String 对象。如果未指定end
参数,则子字符串的结尾就是原字符串的结尾。如果start
的值大于或等于end
的值,则此方法返回一个空字符串)分了以“&#”开头的进制数和特殊字符,最后调用fromCodePoint函数转换为字符。
每个js文件开头都有"use strict";这条语句,查了一下网上,解释如下:
js
作为一门一开始用于浏览器的脚本语言,容错性很好。所以有时候代码写得再丑再乱七八糟,也可以运行的。而
"use strict"
开启严格模式以后,一些js糟糕的特性都会被禁用,比如不能用with
,也不能在意外的情况下给全局变量赋值。严格模式下的eval
函数的行为和非严格模式的也不相同。具体题主可以去查阅一下严格模式到底限制了多少内容。另外需要注意的是,严格模式虽然看似美好,但使用上也需要注意,推荐看下:"use strict"; 的正确使用
- encode.js:
function getEncodeCache(exclude):创建一个查找数组,除了字符字符串中的字母和数字字母的其他字母都是百分编码的。
function encode(string, exclude, keepEscaped):把百分百分编码的不安全字符统统编码,跳过已经编码的字段。