js-API-总结

字符串

1、charAt()(返回指定位置的字符)

"qwerty".charAt(2)	//"e"

2、substr()(截取字符串,以指定下标开始,截取n个字符,包含指定位置下标的字符)

var str = 'hello';
str.substr(1,3)		//"ell"
str.substr(-2)		//"lo"
str.substr(-4,1)		//"e"

3、indexOf()(查询指定字符的位置,返回查找到的第一个字符的下标位置,查不到返回-1)
lastIndexOf()(反之)

var str = 'hello';
a.indexOf('l')		//2
a.indexOf('a')		//-1

4、trim()(去掉字符串两边的空格)

5、str.toLowerCase()(转小写)

6、str.toUpperCase()(转大写)

7、replace()(替换)

8、split()(以指定字符将字符串才分为数组)

9、padStart() / padEnd()(ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全)

'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'
'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'

注意:1、如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串
'xxx'.padStart(2, 'ab') // 'xxx'
'xxx'.padEnd(2, 'ab') // 'xxx'

注意2、如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。
'abc'.padStart(10, '0123456789')
// '0123456abc'

注意3、如果省略第二个参数,默认使用空格补全长度。
'x'.padStart(4) // '   x'
'x'.padEnd(4) // 'x   '

Number

1、Number.isInteger()(是否为整数)

Number.isInteger(1.1)	//false
Number.isInteger(1)		//true
Number.isInteger(NaN)	//false

注意:
Number.isInteger(1.0)	//	true

2、isNaN()(是否为NaN)

isNaN(1)		//false
isNaN(NaN)		//true

3、toExponential()(以指数表示法返回该数值字符串表示形式)

11.123456.toExponential()	//"1.1123456e+1"

4、toFixed()(保留几位小数,并四舍五入)

12345.6789.toFixed(1)	//"12345.7"
注意:
12345.6789.toFixed(6); 	//"12345.678900"(用0填充)

5、toLocaleString()(千分符)

var  num = 123456789;
num.toLocaleString()	//"123,456,789"
注意:
123456789.toLocaleString()	报错Uncaught SyntaxError: Invalid or unexpected token
(123456789).toLocaleString()	//"123,456,789"

6、toString()(返回指定 Number 对象的字符串表示形式)

(17).toString()	//'17'

Math

1、Math.min()(一组数值中的最小值)

Math.min(1,2,3,4,3,2,1)	//1

2、Math.max()(一组数值中的最大值)

Math.max(1,2,3,4,3,2,1)	//4

3、Math.ceil()(向上取整)

Math.ceil(25.4) 	//26 (只要有小数就向上进一)

4、Math.floor()(向下取整)

Math.floor(25.9)	//25(舍弃小数)

5、Math.round()(随机数)

得到两个数之间的随机数
Math.random() * (max - min) + min; 

得到一个两个数之间的随机整数
Math.floor(Math.random() * (max - min)) + min;	//不含最大值,含最小值

得到一个两数之间的随机整数,包括两个数在内
Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值

随机排序
var arr2=[1,2,3,4,5,6,7,8,9];
arr2.sort(function(a,b){
	return Math.random()-0.5;
});

6、不常用方法

Math.abs(num)		//返回num的绝对值

Math.exp(num)		//返回Math.E的num次幂

Math.log(num)		//返回num的自然对数

Math.pow(num,power)		//返回num的power次幂

Math.sqrt(num)		//返回num的平方根

Math.acos(x)		//返回x的反余弦值

Math.asin(x)		//返回x的反正弦值
	
Math.atan(x)		//返回x的反正切值

Math.atan2(y,x)		//返回y/x的反正切值

Math.cos(x)		//返回x的余弦值

Math.sin(x)		//返回x的正弦值

Math.tan(x)		//返回x的正切值

对象

1、Object.assign()(合并对象,浅拷贝,改变第一个参数的对象)

const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };

const returnedTarget = Object.assign(target, source);
console.log(returnedTarget)	//{a: 1, b: 4, c: 5}
console.log(target)	//{a: 1, b: 4, c: 5}
console.log(source)		// { b: 4, c: 5 };

建议:
const returnedTarget = Object.assign({},target, source);	//不会改变原有对象

2、Object.defineProperty()(监听数据变化,vue2.0双向绑定原理)

var o = {};
var s = "";
Object.defineProperty(o, 'a', {
    get() {
        return s;
    },
    set(newVal) {
        s = newVal
    },
})
o.a = 3;
console.log(s)	//3

3、Object.entries()(返回一个二维数组)

const obj = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]

4、Object.fromEntries()(将二维数组转换为对象)

var obj = bject.fromEntries([
  ['foo', 'bar'],
  ['baz', 42]
])
closole.log(obj)	//{foo: "bar", baz: 42}

5、Object.hasOwnProperty()(判断指定对象上面是否有指定的属性)

var o = {a:1};
o.hasOwnProperty('a')	//true
o.hasOwnProperty('b')	//false

6、Object.keys()(以数组的形式返回对象中的key)

var arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // console: ['0', '1', '2']
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // console: ['0', '1', '2']

7、Object.values()(以数组的形式返回对象中的所有value)

var obj = { foo: 'bar', baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]

Array

1、concat()(合并数组,不改变原数组)

const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);

console.log(array3)		//["a", "b", "c", "d", "e", "f"]
console.log(array1)	// ["a", "b", "c"]

2、flat()(按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回)

var arr = [0,1,[2,3,[4,5,[6,7]]]]

console.log(arr.flat(Infinity));	// [0, 1, 2, 3, 4, 5, 6, 7](Infinity会展开任意深度的数组)

const arr2 = [0, 1, 2, [[[3, 4]]]];

console.log(arr2.flat(2));		//[0, 1, 2, [3, 4]]

注意:
flat() 方法会移除数组中的空项:

var arr4 = [1, 2, , 4, 5];

arr4.flat();

// [1, 2, 4, 5]

3、Array.from()(从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例)

console.log(Array.from('foo'));		//["f", "o", "o"]

console.log(Array.from([1, 2, 3], x => x + x));		//[2, 4, 6]

4、includes() (是否包含指定元素)

5、indexOf()(返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1)

6、join()(将数组以指定分隔符分隔合并为字符串)

7、pop()(方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度)

8、shift() (从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度)

9、push()(将一个或多个元素添加到数组的末尾,并返回该数组的新长度)

10、unshift()(将一个或多个元素添加到数组的开头,并返回该数组的新长度(该方法修改原有数组))

11、isArray()(用于确定传递的值是否是一个 Array)

Array.isArray([1, 2, 3]);	//true

12、slice()(返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(前包后不包)。原始数组不会被改变)

const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];

console.log(animals.slice(2));		//["camel", "duck", "elephant"]

console.log(animals.slice(2, 4));		//["camel", "duck"]

console.log(animals.slice(1, 5));		//"bison", "camel", "duck", "elephant"]

13、sort()(排序)

var arr3 = [30,10,111,35,1899,50,45];
arr3.sort((a, b) => a - b)
console.log(arr3);//输出  [10, 30, 35, 45, 50, 111, 1899]

var arr4 = [30,10,111,35,1899,50,45];
arr4.sort((a, b) => b - a)
console.log(arr4);//输出 [1899, 111, 50, 45, 35, 30, 10]

14、splice()(通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。)

*从第 2 位开始删除 0 个元素,插入“drum”*
var myFish = ["angel", "clown", "mandarin", "sturgeon"];

var removed = myFish.splice(2, 0, "drum");	

// 运算后的 myFish: ["angel", "clown", "drum", "mandarin", "sturgeon"]

// 被删除的元素: [], 没有元素被删除



*从第 2 位开始删除 0 个元素,插入“drum” 和 "guitar*

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];

var removed = myFish.splice(2, 0, 'drum', 'guitar');		

// 运算后的 myFish: ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]

// 被删除的元素: [], 没有元素被删除



*从第 3 位开始删除 1 个元素*

var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon'];

var removed = myFish.splice(3, 1);		

// 运算后的 myFish: ["angel", "clown", "drum", "sturgeon"]

// 被删除的元素: ["mandarin"]



*从第 2 位开始删除 1 个元素,插入“trumpet”*

var myFish = ['angel', 'clown', 'drum', 'sturgeon'];

var removed = myFish.splice(2, 1, "trumpet");	

// 运算后的 myFish: ["angel", "clown", "trumpet", "sturgeon"]

// 被删除的元素: ["drum"]


*从第 0 位开始删除 2 个元素,插入"parrot""anemone""blue"*

var myFish = ['angel', 'clown', 'trumpet', 'sturgeon'];

var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');	

// 运算后的 myFish: ["parrot", "anemone", "blue", "trumpet", "sturgeon"]

// 被删除的元素: ["angel", "clown"]


*从第 2 位开始删除 2 个元素*

var myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon'];

var removed = myFish.splice(myFish.length - 3, 2);

// 运算后的 myFish: ["parrot", "anemone", "sturgeon"]

// 被删除的元素: ["blue", "trumpet"]



*从倒数第 2 位开始删除 1 个元素*

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];

var removed = myFish.splice(-2, 1);

// 运算后的 myFish: ["angel", "clown", "sturgeon"]

// 被删除的元素: ["mandarin"]


*从第 2 位开始删除所有元素*

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];

var removed = myFish.splice(2);

// 运算后的 myFish: ["angel", "clown"]

// 被删除的元素: ["mandarin", "sturgeon"]

Date

var date = new Date();
console.log(date);  //Tue Jun 16 2020 14:01:22 GMT+0800 (中国标准时间)
var date = +new Date();
console.log(date);	//1592287386929(毫秒数)

-getTime()

返回 1970 年 1 月 1 日至今的毫秒数。

var date = new Date();
console.log(date.getTime());	//1592287386929(毫秒数)

-getFullYear()

从 Date 对象以四位数字返回年份。

var date = new Date();
console.log(date.getFullYear());	//结果:2020

-getMonth()

从 Date 对象返回月份 (0 ~ 11)。

var date = new Date();
console.log(date.getMonth() + 1);	//6

-getDate()

从 Date 对象返回一个月中的某一天 (1 ~ 31)。

var date = new Date();
console.log(date.getDate());	//16

-getDay()

从 Date 对象返回一周中的某一天 (0 ~ 6)。

var date = new Date();
console.log(date.getDay());	//2

-getHours()

返回 Date 对象的小时 (0 ~ 23)。

var date = new Date();
console.log(date.getHours());	//14

-getMinutes()

返回 Date 对象的分钟 (0 ~ 59)

var date = new Date();
console.log(date.getMinutes());	/10

-getSeconds()

返回 Date 对象的秒数 (0 ~ 59)。

var date = new Date();
console.log(date.getSeconds());	//10

-toJSON()

以 JSON 数据格式返回日期字符串

var date = new Date();
console.log(date.toJSON());	//2020-06-16T06:11:18.937Z

-toString()

把 Date 对象转换为字符串

var date = new Date();
console.log(date.toString());	//Tue Jun 16 2020 14:11:46 GMT+0800 (中国标准时间)

-toLocaleTimeString()
显示格式根据本地电脑,格式化显示

let a = new Date()
console.log(a.toLocaleTimeString())	//"下午3:22:54"

时间戳转换为日期

function add0(m){return m<10?'0'+m:m }
function format(shijianchuo){
	//shijianchuo是整数,否则要parseInt转换
	var time = new Date(shijianchuo);
	var y = time.getFullYear();
	var m = time.getMonth()+1;
	var d = time.getDate();
	var h = time.getHours();
	var mm = time.getMinutes();
	var s = time.getSeconds();
	return y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s);
}	
function format(shijianchuo){
	//shijianchuo是整数,否则要parseInt转换
	var time = new Date(shijianchuo);
	var time = new Date();
    var y = time.getFullYear();
    var m = (time.getMonth() + 1).toString().padStart(2, 0);
    var d = time.getDate().toString().padStart(2, 0);
    var h = time.getHours().toString().padStart(2, 0);
    var mm = time.getMinutes().toString().padStart(2, 0);
    var s = time.getSeconds().toString().padStart(2, 0);
    return y + "-" + m + "-" + d + " " + h + "-" + mm + "-" + s;
}	
/**
 * @description 获取 日期 || 时间  或  传入时间戳 获取转换后得 时间格式
 * @param {String} type date 2022-11-11 || time 12:13:14 || dateTime 2022-11-11 12:13:14
 * @param {String} timer 时间戳
 */
export function getTimer(type, timer) {
    if (!['date', 'time', 'dateTime'].includes(type)) new Error('getTimer type error');
    const time = timer ? new Date(timer) : new Date();
    var y = time.getFullYear();
    var m = (time.getMonth() + 1).toString().padStart(2, 0);
    var d = time.getDate().toString().padStart(2, 0);
    var h = time.getHours().toString().padStart(2, 0);
    var mm = time.getMinutes().toString().padStart(2, 0);
    var s = time.getSeconds().toString().padStart(2, 0);

    const obj = {
        'date': y + "-" + m + "-" + d,
        'time': h + "-" + mm + "-" + s,
        'dateTime': y + "-" + m + "-" + d + " " + h + ":" + mm + ":" + s
    }

    return obj[type]
}	

getBoundingClientRect() 获取元素距离上下左右的距离
原文:传送门

requestAnimationFrame() 介绍 、requestAnimationFrame 与setTimeout、setInterval区别
原文:传送门

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值