js内置对象
js内置对象是js自带的一些常用方法,可以直接使用,无需直接手动创建的。
api 可以查询MDN和W3C,MDN比较权威一点。
Math对象不是一个函数对象,没有构造函数,它的属性和方法都是静态的,也就是说可以直接调用
详见:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math
自定义最大和最小值:
var myMax = {
PI: 3.144567888,
max: function(a,b,c){ //可以写上形参变量,也可以不写
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
},
min: function() {
var min = arguments[0];
for (var i = 1; i < arguments.length;i++) {
if (arguments[i] < min) {
min = arguments[i];
}
}
return min;
},
};
console.log(myMax.PI);
console.log(myMax.max(4,-9,5));
console.log(myMax.min(3,9,6));
console.log(Math.abs('-22')); //隐式转换为number
Math.round(-1.5) //输出-1,round是四舍五入,取值会往大的值取
得到一个两数之间的随机整数,包括两个数在内
function getRandomIntInclusive(min, max) {
//min = Math.ceil(min);
// max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值
}
Date()是以一个构造函数,需要实例化,参数可以是数字也可以是字符串
var d1 = new Date(2021,12,10); //输出的月份是一月份,月份从0~11计数,0为一月份依次类推
var d2 = new Date('2021-12-10');
console.log(d2.getDay()); //周日为0,周一到周六为1~6
console.log(d2.getMonth());//输出11,要加上1才是当前实际月份,月份从0~11计数
获取距离1970年1月1日的毫秒数:
valueOf() getTime() 这二种方法都需要 new Date()
简便写法:var date = +new Date(); 这里在new前面加上+
H5新增:Date.now(); //调用此方法可以直接获取毫秒数
parseInt(参数);参数是字符串,解析为整数
倒计时函数:
function countDown(date) {
var currentDate = +new Date();
var inputDate = +new Date(date);
var millisecond = (inputDate - currentDate) / 1000;
var d = parseInt(millisecond / 60 / 60 /24); //天数
d = d < 10 ? '0' + d : d;
var h = parseInt(millisecond /60 / 60 % 24); //时数
h = h < 10 ? '0' + h : h;
var m = parseInt(millisecond / 60 % 60); //分钟
m = m < 10 ? '0' + m : m;
var s = parseInt(millisecond % 60); //秒数
s = s < 10 ? '0' + s : s;
return d + ' 天 ' + h + ' 时 ' + m + ' 分 ' + s + ' 秒 ';
}
创建数组:
new Array(2); //2表示数组的长度
new Array(2,3,......); //2 3表示数组的元素且长度根据元素个数而定
判断是否是数组:
instanceof 关键字
用法: arr instanceof Array
另一个为数组本身的方法:Array.isArray(arr); //返回的结果是boolean类型的值
数组的添加:
push(参数); 在元素的末尾添加一个或多个元素,并且会返回新数组的长度.
unshift(参数);在元素的开头添加一个或多个元素,并返回新数组的长度
数组的删除:
pop();删除数组中最后一个元素,且返回删除的元素,该方法没有参数.如果你在一个空数组上调用 pop(),它返回 undefined。
shift();删除数组的第一个元素,返回删除的元素,该方法没有参数.如果你在一个空数组上调用 pop(),它返回 undefined。
数组的排序:
reverse();反转数组
sort();默认元素会按照转换为的字符串的诸个字符的Unicode位点进行排序。sort方法里面要放入比较函数, console.log(arr); //[-3, -76, 0, 3, 76, 99]。默认排序后的结果。
arr.sort(function(a,b){
return a - b;
});
console.log(arr); // [-76, -3, 0, 3, 76, 99] //加入比较函数排序后的结果
详见:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
查找数组的索引:
indexOf(数组中的元素); 从前往后查找数组中该元素并返回该元素的索引,没有该元素返回-1。数组中有重复元素,返回第一次查找到的元素所对应的索引。
lastIndexOf(数组中的元素);从后往前查找数组中该元素并返回该元素的索引,没有该元素返回-1。返回第一次查找到的元素所对应的索引。
去重函数:
function removeRepetition(arr) {
//var newArr; //Cannot read properties of undefined
var newArr = []; //必须要声明并赋值,因为它是弱类型语言
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(removeRepetition(['a', 'u', 'd', 'r', 'u', 'd']));
把数组转换为字符串的方法:
toString();
join(分隔符);join方法可以加入你想要以什么符号来分割数组中的元素。
字符串:
基本类型包装成复杂类型,拥有了属性和方法
var str = 'acd'; //基本类型
str.length; //包装后的类型
过程如下:
var temp = new String('acd');
str = temp
temp = null
字符串本身不可变。
var str = 'asd';
str = 'acd'; //在内存中开辟新空间存入'acd',并且str指向这个空间。
indexOf('要查找的元素',[从什么位置开始]);[] 代表可选
var str = '春天来了';
str.indexOf('来');//返回2,索引从0开始,如果查找不到就返回-1;
charAt(索引);返回相应的字符
charCodeAt(索引);返回索引处字符对应的ASCII
str[索引];返回索引对应的字符
获取字符串中各个字符的数量:
var obj = {};
var str = 'asdahcadaeas';
for (var i = 0;i < str.length;i++) {
var c = str.charAt(i); //根据索引回去字符
if (obj[c]) { //对象调用属性获取值这里为大于等于1即为true
obj[c]++; //找到后属性值加1
} else {
obj[c] = 1; //对象中没有该属性,就创建并赋值
}
}
console.log(obj); //{a: 5, s: 2, d: 2, h: 1, c: 1, …}
concat();拼接字符串
substr(起始位置,取几个字符);
replace(被替换的字符,新的字符); 如果字符串中有重复字符,只替换第一次查找的
split(字符串中的分隔符);把字符串中的字符去掉并转换成数组、join(分隔符)是把数组转换成字符串并用指定的分隔符分开。