一个引用值(对象)是一个特定引用类型的实例。引用类型是将数据和功能组合在一起的结构。引用类型有时也称为对象定义,因为它们描述了自己的对象应该具有的属性和方法。Date指的是早期Java版本中的java.util.Date。因此,Date类型将日期保存为自1970年1月1日午夜(零点)以来经过的毫秒数,UTC(协调世界时)时间。Date类型可以准确表示1970年1月1日前后及之后285616年的日期。要基于其他日期和时间创建日期对象,必须传入其毫秒表示形式。ECMAScript为此提供了两个辅助方法:Date.parse()和Date.UTC()。日期。解析()。接收表示日期的字符串参数,并尝试将此字符串转换为表示该日期的毫秒数。ES5定义了支持的日期格式:“月/日/年”“月名日,年”“周月名日年时:分:秒时区”ISO8601扩展格式“YYYY-MM-DDTHH:mm:ss。如果传入的字符串不表示日期,sssZ"将返回NaN。如果将表示日期的字符串传递给Date构造函数,Date.parse()将在后台自动调用。对于越界日期,不同的浏览器有不同的处理。日期。世界标准时间()。还返回日期的毫秒表示形式。使用的参数是年、从零开始的月(0-11)、日(1-31)、小时(0-23)、分、秒和毫秒。只需要年份和月份。也由Date构造函数隐式调用。创建的是本地日期,不是GMT日期(参数是GMT时区下的时间)。日期。现在()。返回表示执行该方法的日期和时间的毫秒数。可用于代码分析。继承方法:toLocaleString():返回与浏览器运行的本地环境一致的日期和时间。(包括AM/PM,不包括时区信息)toString():返回带有时区信息的日期和时间。(时间为24小时格式)valueOf():返回日期的毫秒表示形式。小于和大于等运算符可以直接使用它返回的值。(保证日期的简单方法)日期格式化方法:返回一个字符串(与具体实现有关,因浏览器而异)toDateString():显式日期中的星期几、月、日、年;toTimeString():显式日期中的时、分、秒和时区;toLocaleDateString():显式日期中的星期几、月、日、年(与地区有关)toLocakeTimeString():显式日期中的时、分、秒;toUTCString():显示完整的UTC日期。GMT=UTC+0(https://www.zhihu.com/questio...)RegExp使用类似于Perl的简洁语法创建:letexpression=/pattern/flags;可以携带0个或多个标志(flags):g:全局模式i:不区分大小写m:多行模式y:粘性模式,表示只查找从lastIndex开始到u之后的字符串:Unicode模式,启用Unicode匹配s:dotAll模式,表示元字符。匹配任何字符(包括\n或\r)所有元字符都必须在模式中转义,包括:([{\^$|}])?*+。它也可以使用RegExp构造函数创建,接收两个参数:模式字符串和(可选)标记字符串。因为RegExp的pattern参数是字符串,所以在某些情况下需要二次转义。使用RegExp也可以基于现有的正则表达式实例并有选择地修改它们的标记。构造函数属性:根据最后执行的正则表达式操作而有所不同,可以通过两种不同的方式访问它们,全名和简写。可以提取有关exec()和test()执行的操作的信息。input($_)最后搜索到的字符串leftContext($`),rightContext($')$`输入字符串中lastMatch之前出现的文本$'输入字符串中lastMatch之后出现的文本lastParen($+)、lastMatch($&)$+最后匹配的捕获组$&最后匹配的文本也可以存储最多9个捕获组的匹配项,可以通过RegExp.$1~RegExp.$9访问。原型属性globalignoreCaseunicodestickymultilinedotAlllastIndex:整数,表示下一次在源字符串中查找的起始位置,始终从0开始正则表达式的stringsource和flags属性返回规范化后可以在文字中使用的形式。lastIndex在非全局模式下始终不变。原型方法exec主要用于捕获组。只接受一个参数,即应用模式的字符串。如果找到,则返回一个数组,其中包含有关第一个匹配项的信息(具有两个附加属性:索引和输入);如果未找到,则返回null。index:匹配模式在字符串中的起始位置;输入:要查找的字符串。数组的第一个元素是匹配整个模式的字符串,其他元素是匹配表达式中捕获组的字符串。没有捕获组,数组只包含一个元素。如果设置了全局标志:每次调用exec()方法都会返回匹配的消息,直到搜索到字符串的末尾。如果不设置,每次调用只会返回第一个匹配的信息。如果设置了粘性标志y:,则每次调用只会在lastIndex处查找匹配项。粘性标签覆盖全局标签。lettext="momanddadandbaby";letpattern=/mom(anddad(andbaby)?)?/gi;letmatches=pattern.exec(text);console.log(matches);console.log(匹配.index);//0console.log(matches.input);//爸爸妈妈和宝宝console.log(matches[0]);//爸爸妈妈和宝宝console.log(matches[1]);//还有爸爸和宝宝console.log(matches[2]);//和babyconsole.log(pattern.lastIndex);//20lettext2="mom";//pattern.lastIndex=0;letmatches2=pattern.exec(text2);console.log(matches2);//nullconsole.log(pattern.lastIndex);//0lettext3="momanddad";letmatches3=pattern.exec(text3);console.log(matches3.input);//妈妈和爸爸console.log(pattern.lastIndex);//11test接受一个字符串参数。输入文本是否与模式匹配继承的方法toLocaleString()和toString()都返回正则表达式的文字表示。valueOf()也是如此。原始值包装器类型在读取模式下访问原始值时存在限制:临时创建一个包装器对象并使用该对象操作相应的数据以销毁临时对象。不建议显式使用它,但它对于操作原始值的功能很重要。NumbervalueOf():返回Number对象所表示的原始值toString():可选地接收一个表示基数的参数,并以对应基数的形式返回一个数字字符串将值格式化为字符串:toFixed():返回一个包含指定小数位数字符串的数字字符。接收一个参数,表示结果字符串中的小数位数。超出部分四舍五入到最接近的小数位。通常可以表示一个带0~20位小数的值。toExponential():返回以科学记数法表示的数字字符串。它还接收一个参数,指示结果中的小数位数。toPrecision():根据情况返回最合理的输出结果,可以是定长也可以是科学计数法。接收一个参数,表示结果中数字(不包括指数)的总位数。本质上,调用toFixed()或toExponential()的决定是基于值和精度。以上所有3项都会向上或向下舍入。(为了准确表示小数位正确的值)与number原值的typeof和instanceof运算结果不一致。(一个是原始值,一个是参考值)isInteger()方法和安全整数:isInteger():ES6new,用于区分一个值是否保存为整数安全整数:所有整数都有唯一的浮点-点表示。范围是Number.MIN_SAFE_INTEGER(-2^53+1)到Number.MAX_SAFE_INTEGER(2^53-1)。Boolean:不推荐使用由16个代码单元(codeunit)组成的String。对于大多数字符,每个16位代码单元对应一个字符。JavaScript字符串混合使用两种Unicode编码:UCS-2和UTF-16。对于16位可以编码的字符(U+0000~U+FFFF),这两种编码其实是一样的,扩展到UnicodeSupplementaryCharacterPlane就不成立了。16位只能唯一表示65536(2^17-1)个字符。每个字符使用两个16位代码单元的策略称为代理对。继承的方法valueOf()、toLocaleString()和toString()都返回对象的原始字符串值。正则相关方法(模式匹配方法)p125match、searchmatch:可以接收一个参数,一个正则表达式字符串或者一个RegExp对象。(在非全局情况下),该方法返回的数组与RegExp对象的exec()方法返回的数组相同。search:接收一个参数,一个正则表达式字符串或者一个RegExp对象。返回模式中第一个匹配项的索引,如果未找到则返回-1。始终从前到后匹配模式。replace,splitreplace:第一个参数可以是RegExp对象或者字符串(不会转换成正则表达式),第二个参数可以是字符串或者当第二个参数是字符串时是一个函数,有几个特殊的字符序列可用于插入正则表达式操作的值。字符序列替换文本$$$$&匹配整个模式的子字符串。与RegExp.lastMatch相同$'匹配子字符串之前的字符串。与RegExp.rightContext相同$`匹配的子串之后的字符串。同RegExp.leftContext$n匹配第n个捕获组的字符串,n为0-9。如果没有捕获组,则值为空字符串$nn,匹配第nn个捕获组的字符串,其中nn为01-99。如果没有捕获组,则值为空字符串lettext="cat,bat,sat,fat";letresult=text.replace(/(.at)/g,"word($1)");console.log(result);functionhtmlEscape(text){returntext.replace(/[<>"&]/g,function(match,pos,originalText){switch(match){case"<":返回"<";case">":返回">";case"&":返回"&";case"\"":返回""";}});}console.log(htmlEscape("
