基本引用类型
Date
Date.parms()支持的日期格式:可以直接传入日期,效果相同
new Date(Date.parse('5/23/2019')); // 月/日/年
new Date(Date.parse('May 23, 2019')) // 月名 日, 年
new Date(Date.parse('Tue May 23 2019 00:00:00 GMT-0700')); // 周几 月名 日 年 时分秒 时区
Date.UTC()支持的格式:可以直接传入日期,但是时间写入的是本地时间,不是UTC时间。
参数为: 年 , 零起点月(0代表一月),日(1-31),时(0-23),分,秒
new Date(Date.UTC(2000, 0)) //Sat Jan 01 2000 08:00:00 GMT+0800 (中国标准时间)
Date.now()当前时间的毫秒数,用于代码分析
let start = Date.now();
dosomething();
let stop = Date.now();
result = stop - start;
其他方法:
getFullYear() 年
getMonth() 月 0表示1月
getDate() 日 1~31
getDay() 周几 0表示周日,6表示周六
getHours() 时 大于23,加日
getMinutes() 分 0~59
getSeconds() 秒 0~59
getMilliseconds() 毫秒
getTimezoneoffset() 返回以分钟计算的UTC和本地时间的偏移量,中国为-480
Reg Exp
let pat1=new RegExp('\\[af\\]ab', 'g'); //1.parrtern 2、flags
let pat2=/\[af\]ab/g //与pat1相同
RegExp对象中的parttern字符串中的元字符都需要二次转义
/\[afb\]/ = new RegExp('\\[afb\\]') //二次转义
RegExp的实例属性:
lastindex:表示在原字符串中,下一次搜索的开始位置,始终从0开始。
若为全局搜索,lastindex的值会改变,否则始终为0
实例方法
exec( )
主要用于配合捕获组使用,接受一个要匹配的字符串参数,返回包含第一个匹配信息的数组。没有找到返回null。
index属性:字符串中匹配模式的起始位置
input属性:要查找的字符串
let pat2 = new RegExp('.at', '');
let text = 'catbat,mat,nat,aa';
let matchs = pat2.exec(text);
console.log(matchs.index); //0
console.log(matchs.input); //catbat,mat,nat,aa
test()
判断是否可以匹配到数据,可以返回true,否则返回false
原始值包装类型
原始值包装类型是:每当用到某个原始值得方法或属性是,==后台==会创建一个原始值包装类型的对,从而保留出原始值的各种方法。
通过new关键字创建的为引用类型,是一个对象。
new String('aa');
new Boolean(true);
new Number(12);
引用类型和原始值包装类型的区别:
生命周期不同:通过new关键字实例化引用类型后,得到的实例会在离开作用域时销毁。 而自动 创建的原始值包装对象只存在于访问它的那行代码执行期间。
Boolean
Number
原始值包装类型方法:
let num=123
- num.toFixed(2) 返回包指定位数小数的数值字符串
- num.toExponential(2) 返回以科学计数法计数的数值字符串 参数表示小数位数
- num.toPrecision(2) 根据情况返回合理的输出结果 参数表示小数位数
- Number.isInteger() 判断数值是否保存为整数 es6新增
- Number.isSafeInteger() 判断数值是否为安全整数,范围为 -2^53 + 1 到 2^53 -1
String
字符串操作方法:
concat() 拼接字符串,与+号相同。可接受多个参数。
提取字符串:
slice(start,end)
包括start,不包括end 若参数为负数,则转为字符长度加上负数参数substring(start,end)
包括start,不包括end 若参数为负数,则转为0substr(start,number)
提取从start开始的number个字符 若第一个参数为负值,则转字符串长度加上该值,第二个参数为负数时,转为0。字符串位置方法:
indexOf(string,start)
从字符串开头查找字符串的位置,可接受两个参数,第一个参数为要查找的子字符串,第二个为从查找的起始位置lastindexOf()
从字符串结尾查找字符串的位置,可接受两个参数,第一个参数为要查找的子字符串,第二个为从查找的起始位置字符串包含方法:es6新增 判断字符串中是否包含另一个字符串
startsWith( string,startindex)
检查开始于索引0的匹配项endsWith( string ,length)
检查开始于索引(string.leng-substring.length)的匹配项 ,第二个参数用于定义原字符串的长度includes(string,startindex)
检查整个字符串==注意:==
startsWith()
和endsWith()
是从指定的位置开始匹配,如果没有找到就返回falsetrim( )
方法是在原字符串的基础上创建一个副本,然后清除左右空格再返回结果。trimStart( )
清除左边空格trimEnd( )
清除右边空格repeat( num)
将字符串复制num次,然后返回所有拼接的结果let a='fo '; console.log(a.repeat(4)); //fo fo fo fo
padStart( length,string)
在字符串开头添加指定字符后达到指定长度 ,默认添加空格,如果指定长度小于原有字符串长度,则返回原字符串padEnd( length,string)
在字符串末尾添加指定字符后达到指定长度, 如果指定长度小于原有字符串长度,则返回原字符串字符串解构:将字符串分割为字符数组
jslet a = 'foo'; console.log([...a]); // ['f', 'o', 'o']
toLocaleUpperCase()
转为大写toLocaleLowerCase()
转为小写localeCompare( )
按照字母表顺序比较两个字符串,如果当前字符串大于参数,返回1,相等返回0,小于返回-1
字符串模式匹配方法
match()
和RegExp()方法一样
不加g
let a = 'test1test2';
matchs = /tes(t(\d))/
console.log(a.match(matchs)); //['test1', 't1', '1', index: 0, input: 'test1test2', groups: undefined]
加g:mathAll发放中必须是全局匹配
let a = 'test1test2';
let matchs = /tes(t(\d))/g;
console.log([...a.match(matchs)]); //['test1', 'test2']
console.log([...a.matchAll(matchs)]);//[
//['test1', 't1', '1', index: 0, input: 'test1test2', groups: undefined],
//['test2', 't2', '2', index: 5, input: 'test1test2', groups: undefined]
//]
search()
返回第一个匹配的位置索引,从开头开始匹配
replace()
参数1:要替换的字符
参数2:替换后的字符
split()
根据传入的分割符将字符串拆分成数组
参数1:分割符 ,可以是字符,也可以是正则表达式
参数2:规定转换后的数组大小
单列内置对象
Global
URL编码
encodeURI(uri) 不会编码特殊字符,如冒号,斜杠,问号,井号
encodeURIComponent(uri) 会编码特殊字符,如冒号,斜杠,问号,井号
let uri = 'https://www.bauda igm/feaf/dd&lag=4';
console.log(encodeURI(uri)); //https://www.bauda%20igm/feaf/dd&lag=4
console.log(encodeURIComponent(uri));//https%3A%2F%2Fwww.bauda%20igm%2Ffeaf%2Fdd%26lag%3D4
decodeURI(uri) 不会解码特殊字符,如冒号,斜杠,问号,井号
decodeURIComponent(uri) 会解码特殊字符,如冒号,斜杠,问号,井号
let uri = 'https%3A%2F%2Fwww.bauda%20igm%2Ffeaf%2Fdd%26lag%3D4';
console.log(decodeURI(uri)); //https%3A%2F%2Fwww.bauda igm%2Ffeaf%2Fdd%26lag%3D4
console.log(decodeURIComponent(uri));//https%3A%2F%2Fwww.bauda igm%2Ffeaf%2Fdd%26lag%3D4
Math
min()和max()
min():确定一组数中的最小值
max():确定一组数中的最大值
舍入方法
Math.ceil( )向上取整
Math.floor() 向下取整
Math.round() 四舍五入
Math.fround() 返回数值最接近的单精度(32位)浮点值表示
random()
产生0到1的随机数,包括0,不包括1
通过以下函数可以生成任意范围的随机数:
function selectFrom(lowerValue, upperValue) {
let choices = upperValue - lowerValue+1;
return Math.floor(Math.random() * choices + lowerValue);
}
console.log(selectFrom(2, 10));