1.内置对象:
js的对象分为四种:内置对象,自定义对象,游览器对象(bom),dom对象。js有多个内置对象,内置对象是里面自带的,不需要我们定义就有的,多个内置对象:Math/Array/Number/String/Boolean;
如何学习一个方法:方法的功能,参数的意义和类型,返回值意义和类型,demo测试;
内置对象:
1.1 Math对象:Math对象不是一个构造对象,
常用的属性:Math.PI;
常用的方法:Math.random() //生成一个 [0,1)的随机数;
Math.floor() //对小数向下取整;(小于0的小数向下取整时要注意,是向下取整)
Math.ceil() //向上取整
Math.rounds() //取整,四舍五入
Math.abs() //取绝对值
Math.max() //取多个数值的最大值
Math.min() //取多个数值的最小值
Math.sin() //取正弦值(Math.PI表示180度)
Math.cos() //取余弦
Math.pow() //求指数次幂(至少传递两个参数值)
Math.sqrt() //求平方根
根据random()方法来取两个数的随机数;
function getRan(n, m) {
return Math.floor(Math.random() * (m - n + 1)) + n
}
console.log(getRan(n, m));
1.2 Date对象
创建Date的实例化对象可以返回现在的时间
1.2.1 创建日期对象:
Date() 是构造函数
var date = new Date();
console.log(date) //Fri May 14 2021 18:48:03 GMT+0800 (中国标准时间)
获取时间戳:1.var dates = + new date();
2.getTime() 方法
3.valueOf(); 原始值
获取年月日,时分秒:
getFullYear() //获取当前的年份
getMonth() //获取月份,0-11,获取当前的月份,getMonth()+1
getDate() //获取当前的月的第几天
getDay() //获取星期 返回0-6 星期天-星期六
getHours() //返回当前时间的小时数
getMinutes() //返回当前时间的分钟数
getSeconds() //返回当前时间的秒数
在浏览器中write具体时间,封装一个函数,使month,date,day,hours,minute,seconds小于10的时候,前面加0;
1.2 数组对象:
1.2.1 检测一个对象是否是数组:instance of 如果返回true就是数组,false就是非数组;
Array.isArray() 如果返回true就是数组,false就是非数组;
1.2.2 数组的方法
var arr = [1, 2, 3, 4, 5];
console.log(arr.unshift(2, 3)); //arr.unshift()在数组的最前面添加一个或多个数值,这里打印的是数字7,arr.unshift()方法返回新数组的长度,
console.log(arr); //返回与原来不一样的新数组,说明unshift的方法会对改变原数组的数值
var arr = [1, 2, 3, 4, 5];
console.log(arr.push(7)); //arr.push()方法在数组的最后面添加一个或多个数值,返回新数组的长度
console.log(arr); //返回与原来不一样的新数组,push的方法会对改变原数组的数值
var arr = [1, 2, 3, 4, 5];
console.log(arr.shift()); //arr.shift()方法删除数组中第一个数值,并且返回删除的元素
console.log(arr); //返回与原来不一样的新数组,shift的方法会对改变原数组的数值
var arr = [93, 92, 91, 39, 22, 10];
console.log(arr.pop()); //arr.pop()方法是从数组的最后删除一个元素,并且返回,删除的元素
console.log(arr); //新数组,pop方法会改变原数组 打印出[93, 92, 91, 39, 22]
var arr = [1, 2, 3, 4, 5];
console.log(arr.reverse()); //arr.reverse(),翻转数组
console.log(arr); //返回与原来不一样的新数组,reverse的方法会对改变原数组的数值
var arr = [1, 2, 3, 4, 5, 19];
console.log(arr.sort(function(a, b) {
return a - b;
})); //sort对数组里面的内容进行排序,但是按照ascii码来进行排序,对0-10之间的数字排序有限,大于等于10的数排序的时候,传参要传递一个函数,函数里面返回a-b是对数组从小到大进行排序,返回b-a是对数组进行从打倒小的排序。
var arr = [1, 2, 3, 4, 5, 19];
var arr1 = ['name', 'age', 'sex'];
var arr2 = arr.concat(arr1);
console.log(arr2); //concat 对两个或者多个数组进行拼接
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr.slice(1, 4)); //打印[2,3,4],slice表示从数组中切割索引从1开始,从4结束的数值,索引包括1,不包括4,返回截取的数值
console.log(arr); //打印[1, 2, 3, 4, 5, 6],原数组,slice不改变原来数组的值
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr.splice(1, 4)); //打印[2,3,4,5]splice表示截取索引从1开始,截取4的长度的数组数值
console.log(arr); //打印[1,6],打印截取后剩余的数组的数值,splice会改变原数组;
var arr = [1, 2, 3, 4, 5, 6, 6];
console.log(arr.indexOf(6)); //打印5,表示从前往后在数组中查找元素,找到元素第一次出现的地方,返回元素的索引
console.log(arr.lastIndexOf(6)); //打印6,表示从后往前在数组中查找元素,找到元素第一次出现的地方,返回元素的索引
数组迭代方法:
var arr = ['name', 'age', 'sex', 'grade', 'weight']
arr.forEach(function(value, index) {
console.log(value, index)
}) // name 0 age 1 sex 2 grade 3 weight 4
forEach方法会遍历数组,value是数组里面的每一个元素,index是数组里面的索引
var arr = [93, 92, 91, 39];
var flag1 = arr.every(function(value, index) {
return value > 60
})
var flag2 = arr.some(function(value, index) {
return value > 60
})
console.log(flag1); //false
console.log(flag2); //true
forEeach(),every(),some()方法后面传参都传递的是一个回调函数,every表示回调函数里面的每一个元素value都满足条件就会返回true,只要有一个不满足,则返回false,some方法表示value至少有一个满足,就返回true;
var arr = [93, 92, 91, 39, 22, 10];
var new1 = arr.filter(function (value, index) {
return value >= 33;
})
console.log(new1); //map():根据数学运算,返回新数组 打印[93, 92, 91, 39]
var new2 = arr.map(function (value, index) {
return Math.pow(value, 2); //value的2次幂
})
console.log(new2) //打印[8649, 8464, 8281, 1521, 484, 100]
清空数组:
1.1 arr = [];
1.2 arr.length = 0;
1.3 arr.splice(0,arr.length)
var arr = [93, 92, 91, 39, 22, 10];
console.log(arr.join()); //join方法是将一个数组转换成字符串,如果没有传参,那么默认用逗号连接
console.log(arr.join('-'));
console.log(arr.join('###'));
//分别打印:93,92,91,39,22,10 93-92-91-39-22-10 93###92###91###39###22###10
封装一个表示当前时间的函数,并且要求当当前日期的月日,以及时分秒的数值小于10的时候,在其前面自动加‘0’
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth();
var dates = date.getDate();
var hours = date.getHours();
var min = date.getMinutes();
var seconds = date.getSeconds();
function add0(n) {
var n = n < 10 ? '0' + n : n;
return n
}
function getDate() {
document.write('现在是' + add0(year) + '年' + add0(month + 1) + '月' + add0(dates) + '日' + ' ' + add0(hours) + ':' + add0(min) + ':' + add0(seconds))
}
getDate()
//现在是2021年05月15日 13:13:01