一.js对象
1,自定义对象、内置对象、浏览器对象;
2,自定义对象和内置对象是js基础内容,属于ECMAScript;浏览器对象是js独有的;
3,内置对象是js语言中自带的一些对象,供给开发者使用,并提供一些常用的或是最基本而必要的功能;
4,内置对象:Math、Date、Array、String;
1.Math对象
简介:
Math数学对象不是一个构造函数,不需要使用new调用,可以直接使用里面的属性和方法;
例子:利用对象封装自己的数学对象,里面有PI、最大值、最小值;
代码:
var myMath = {
PI: 3.141592653,
max: function() {
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(myMath.PI);
console.log(myMath.max(4, 8, 6));
console.log(myMath.min(4, 8, 6));
Math对象具有数学常数和函数的属性和方法,跟数学相关的运算可以使用Math中的成员;
绝对值方法:Math.abs
三个取整方法:Math.floor(向下取整)、Math.ceil(向上取整)、Math.round(四舍五入)
随机数方法:
1,Math.random(返回一个随机的小数、里面不跟参数)
2,return Math.random();得到一个大于等于0,小于1之间的随机数
3,return Math.random() * (max - min) + min;得到一个两数之间的随机数
代码:
例子:猜数字游戏
代码:
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var random = getRandom(1, 10);
while (true) {
var num = prompt("请输入一个1-10之间的数字");
if (num > random) {
alert('太大了');
} else if (num < random) {
alert('太小了');
} else {
alert('猜对了');
break;
}
}
2.Date对象
1,日期对象,是一个构造函数,必须使用new来调用和创建日期对象
2,使用Date:var date=new Date(); console.log(date);
3,如果没有参数,则返回当前系统的当前时间;
4,有参数的常见写法:数字型:2020,4,09 字符型(常用):‘2020-4-09 17:04:13’
日期格式化
getFullYear():获取当年
getMonth():获取当月(0-11)月份需要+1
getDate():获取当天日期
getDay():获取星期几(周日0到周六6)
getHours():获取当前小时
getMinutes():获取当前分钟
getSeconds():获取当前秒钟
例子:封装一个函数返回当前的时分秒格式为:00:00:00
代码:
function getTime() {
var time = new Date();
var h = time.getHours();
h = h < 10 ? '0' + h : h;
var m = time.getMinutes();
m = m < 10 ? '0' + m : m;
var s = time.getSeconds();
s = s < 10 ? '0' + s : s;
return h + ':' + m + ':' + s;
}
console.log(getTime());
获取Date总的毫秒数(时间戳)
1,获取的是距离1970年1月1号过来的毫秒数;
2,方法:valueOf、getTime
例子:倒计时(使用时间戳)
代码:
function countDown(time) {
var nowTime = +new Date(); //返回当前时间总的毫秒数
var inputTime = +new Date(time); //返回用户输入时间总的毫秒数
var times = (inputTime - nowTime) / 1000; //times是剩余时间总的秒数
var d = parseInt(times / 60 / 60 / 24); //计算当前天数
d = d < 10 ? '0' + d : d;
var h = parseInt(times / 60 / 60 % 24); //计算当前小时
h = h < 10 ? '0' + h : h;
var m = parseInt(times / 60 % 60); //计算当前分钟
m = m < 10 ? '0' + m : m;
var s = parseInt(times % 60); //计算当前秒
s = s < 10 ? '0' + s : s;
return d + '天' + h + '小时' + m + '分钟' + s + '秒';
}
console.log(countDown('2020-4-22 18:00:00'));
3.Array对象
1,创建数组的两种方式:var arr=[]; var arr1=new Array(2,3)
2,Array对象是一个构造函数,第二种创建函数的方式,括号里必须要有两个数组元素;只有一个表示数组的长度为2,里面有两个空的数组元素;
添加删除数组元素:
- push():在数组末尾添加一个或多个数组元素
arr.push(添加的元素)
返回值是新数组的长度console.log(arr.push(添加的元素))
; - unshift():在数组开头添加一个或多个数组元素
arr.unshift(添加的元素)
返回值是新数组的长度console.log(unshift.push(添加的元素))
; - pop():删除数组的最后一个元素
arr.pop()
一次只能删除一个元素,没有参数,返回值是删除的那个元素console.log(arr.pop())
; - shift():删除数组的第一个元素
arr.shift()
一次只能删除一个元素,没有参数,返回值是删除的那个元素console.log(arr.shift())
;
数组排序
- 翻转数组:arr.reverse()
- 冒泡排序:arr.sort(function(a,b){ return a-b;//升序排序 return b-a;//降序排序 })
数组索引
- 返回数组元素的索引号:indexOf(数组元素)、只返回第一个满足条件的索引号,从前往后查找、如果在数组中找不到该元素,则返回-1;
- 返回数组元素的索引号:lastIndexOf(数组元素)、只返回第一个满足条件的索引号,从后往前查找、如果在数组中找不到该元素,则返回-1;
数组去重
例子:
代码:
function unique(arr) {
var newArray = [];
for (var i = 0; i < arr.length; i++) {
if (newArray.indexOf(arr[i]) == -1) {
newArray.push(arr[i]);
}
}
return newArray;
}
var arr1 = unique([1, 5, 2, 5, 2, 4, 4, 6, 2]);
console.log(arr1);
数组转换为字符串
- 利用
toString
转换arr.toString()
- 利用
join
转换,可以添加分隔符arr.join(分隔符)
4.字符串对象
为了方便操作基本数据类型,js还提供了三个特殊的引用类型:String、Number、Boolean
根据字符返回位置
例子:查找字符串中某个字符出现的位置和次数
代码:
var str = 'ddsafghudjsanddvmdsg';
var index = str.indexOf('d');
var num = 0;
while (index !== -1) {
console.log(index);
num++;
index = str.indexOf('d', index + 1);
}
console.log('d出现的次数是:' + num);