Skip to content

基本引用类型

Date

Date.parms()支持的日期格式:可以直接传入日期,效果相同

js
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),分,秒

js
new Date(Date.UTC(2000, 0)) //Sat Jan 01 2000 08:00:00 GMT+0800 (中国标准时间)

Date.now()当前时间的毫秒数,用于代码分析

js
let start = Date.now();
dosomething();
let stop = Date.now();
result = stop - start;

其他方法:

js
getFullYear() 年
getMonth() 月 0表示1月
getDate() 日 1~31
getDay() 周几  0表示周日,6表示周六
getHours() 时 大于23,加日
getMinutes() 分 0~59
getSeconds() 秒 0~59
getMilliseconds() 毫秒 
getTimezoneoffset()  返回以分钟计算的UTC和本地时间的偏移量,中国为-480

Reg Exp

js
let pat1=new RegExp('\\[af\\]ab', 'g'); //1.parrtern 2、flags
let pat2=/\[af\]ab/g  //与pat1相同

RegExp对象中的parttern字符串中的元字符都需要二次转义

js
/\[afb\]/ = new RegExp('\\[afb\\]')  //二次转义

RegExp的实例属性:

lastindex:表示在原字符串中,下一次搜索的开始位置,始终从0开始。

​ 若为全局搜索,lastindex的值会改变,否则始终为0

实例方法

exec( )

主要用于配合捕获组使用,接受一个要匹配的字符串参数,返回包含第一个匹配信息的数组。没有找到返回null。

index属性:字符串中匹配模式的起始位置

input属性:要查找的字符串

js
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关键字创建的为引用类型,是一个对象。

js
new String('aa');
new Boolean(true);
new Number(12);

引用类型和原始值包装类型的区别:

生命周期不同:通过new关键字实例化引用类型后,得到的实例会在离开作用域时销毁。 而自动 创建的原始值包装对象只存在于访问它的那行代码执行期间。

Boolean

Number

原始值包装类型方法:

​ let num=123

  1. num.toFixed(2) 返回包指定位数小数的数值字符串
  2. num.toExponential(2) 返回以科学计数法计数的数值字符串 参数表示小数位数
  3. num.toPrecision(2) 根据情况返回合理的输出结果 参数表示小数位数
  4. Number.isInteger() 判断数值是否保存为整数 es6新增
  5. Number.isSafeInteger() 判断数值是否为安全整数,范围为 -2^53 + 1 到 2^53 -1

String

字符串操作方法:

  1. concat() 拼接字符串,与+号相同。可接受多个参数。

  2. 提取字符串:

    slice(start,end) 包括start,不包括end 若参数为负数,则转为字符长度加上负数参数

    substring(start,end) 包括start,不包括end 若参数为负数,则转为0

    substr(start,number) 提取从start开始的number个字符 若第一个参数为负值,则转字符串长度加上该值,第二个参数为负数时,转为0。

  3. 字符串位置方法:

    indexOf(string,start) 从字符串开头查找字符串的位置,可接受两个参数,第一个参数为要查找的子字符串,第二个为从查找的起始位置

    lastindexOf() 从字符串结尾查找字符串的位置,可接受两个参数,第一个参数为要查找的子字符串,第二个为从查找的起始位置

  4. 字符串包含方法:es6新增 判断字符串中是否包含另一个字符串

    startsWith( string,startindex) 检查开始于索引0的匹配项

    endsWith( string ,length) 检查开始于索引(string.leng-substring.length)的匹配项 ,第二个参数用于定义原字符串的长度

    includes(string,startindex) 检查整个字符串

    ==注意:==startsWith()endsWith() 是从指定的位置开始匹配,如果没有找到就返回false

  5. trim( ) 方法是在原字符串的基础上创建一个副本,然后清除左右空格再返回结果。

    trimStart( ) 清除左边空格

    trimEnd( )清除右边空格

  6. repeat( num) 将字符串复制num次,然后返回所有拼接的结果

     let a='fo ';
     console.log(a.repeat(4)); //fo fo fo fo
  7. padStart( length,string) 在字符串开头添加指定字符后达到指定长度 ,默认添加空格,如果指定长度小于原有字符串长度,则返回原字符串

    padEnd( length,string) 在字符串末尾添加指定字符后达到指定长度, 如果指定长度小于原有字符串长度,则返回原字符串

  8. 字符串解构:将字符串分割为字符数组

    js
     let a = 'foo';
      console.log([...a]); // ['f', 'o', 'o']
  9. toLocaleUpperCase()转为大写

    toLocaleLowerCase()转为小写

  10. localeCompare( ) 按照字母表顺序比较两个字符串,如果当前字符串大于参数,返回1,相等返回0,小于返回-1

字符串模式匹配方法
match()

和RegExp()方法一样

不加g

js
let a = 'test1test2';
 matchs = /tes(t(\d))/ 
console.log(a.match(matchs)); //['test1', 't1', '1', index: 0, input: 'test1test2', groups: undefined]

加g:mathAll发放中必须是全局匹配

js
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]
//]

返回第一个匹配的位置索引,从开头开始匹配

replace()

参数1:要替换的字符

参数2:替换后的字符

split()

根据传入的分割符将字符串拆分成数组

参数1:分割符 ,可以是字符,也可以是正则表达式

参数2:规定转换后的数组大小

单列内置对象

Global

URL编码

encodeURI(uri) 不会编码特殊字符,如冒号,斜杠,问号,井号

encodeURIComponent(uri) 会编码特殊字符,如冒号,斜杠,问号,井号

js
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) 会解码特殊字符,如冒号,斜杠,问号,井号

js
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

通过以下函数可以生成任意范围的随机数:

js
 function selectFrom(lowerValue, upperValue) {
     let choices = upperValue - lowerValue+1;
     return Math.floor(Math.random() * choices + lowerValue);
 }
console.log(selectFrom(2, 10));