2021/01/08 JS基础 ECMASCRIPT(三)

(一)对象
对象的定义: JS中,对象是一组无序的相关属性和方法的集合,对象是由属性和方法构成的。

创建对象有三种方法
1 .对象字面量

var 对象名 = {
	key1: value1,
	key2: value2,
}; 

2 .new Object创建对象

var obj = new Object();

3 .构造函数创建对象

遍历对象:for…in

var obj = {
	uname: '张三',
	age: 18,
	gender: '男'
}
for (var k in obj) {
	console.log(k); // 属性名
	console.log(obj[k]); // 属性值
}

对象可以分为三种:一种是“自定义对象”;另外一种是“内置对象”和“浏览器对象”。自定义对象,指的是需要我们自己定义的对象,跟“自定义函数”是一样的道理;内置对象,指的是不需要我们自己定义(即系统已经定义好的)、可以直接使用的对象,跟“内置函数”也是一样的道理。


内置对象:

① 字符串对象:String

首先注意一点,字符串所有的方法都不会改变字符串自身,操作完成后会返回一个新字符串。

1 .获取字符串的长度(前面用过很多次了)

string.length;

length应用:利用字符串对象获取一串数字的长度

function getNumberLen(number) {
	var str = number + '';
	return str.length;
}
document.write(getNumberLen(111222333));// 9

2 .大小写转换

str.toLowerCase();// 将字符串str转换为小写
str.toUpperCase(); // 大写

3 .通过索引获取字符串中的指定字符

str.charAt(索引号); //获取字符串str中指定索引号位置的字符

获取指定字符的ascii码值:

str.charCodeAt(索引号);

4 .字符串截取;substring(strat, end);

var str = '字符串截取';
//只指定start,默认从strat截取到最后
str.substring(0); // 字符串
//指定end,但是end截取不到,要前不要后
str.substring(2, 3); // 串

其他字符串截取方法(了解一下)

substr(start, length); // length是从指定的start开始往后,需要截取的长度
slice(start, end); // 和substring相同,唯一区别是可以指定负值

5 .字符串替换

// 将指定字符串中第一个(组)符合指定条件的字符替换为指定字符
str.replace('被替换', '替换为'); //第一个参数可以使用正则表达式,用来匹配指定范围内所有符合替换条件的内容

6 .字符串和数组之间的转换

// 数组转换为字符串
list.join('分隔符'); 
// 字符串转换为数组
str.split('分隔符');

7 . 获取字符串索引

str.indexOf('要查找', '起始位置'); // 起始位置可以省略,返回第一个符合条件的字符串索引
str.lastIndexOf('要查找'); // 从后往前查找

利用字符串索引查找所有指定字符出现的位置索引;

var str = 'abcdoefoxyozzopp';
var index = str.indexOf('o');
while (index != -1) {
	console.log('索引:' + index);
	index = str.indexOf('o', index + 1);
}

② 数组对象:Array
1 .数组拼接

var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var newArr = arr1.concat(arr2); // [1, 2, 3, 4, 5, 6]

2 .数组反转

var arr = [1, 2, 3];
arr = arr.reverse(); // [3, 2, 1]

3 .检测是否为数组

var arr = [1, 2, 3];
console.log(arr instanceof Array); // 运算符
var obj = {};
console.log(Array.isArray(obj)); // 函数

4 .元素的添加和删除(前面学过)
push();
shift();
unshift();
pop();

5 .数组排序

var arr = [1, 9, 4, 6, 3];
arr.sort(function(a, b) {
	return a - b;// 升序
	// b - a; 降序
})

6 .数组索引
indexOf(元素);如果找到返回第一个符合条件的数组元素索引号,如果找不到返回 -1
lastIndexOf(元素);从后往前

通过数组索引实现数组去重:

var arr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
	if (newArr.indexOf(arr[i]) == -1) {
		newArr.unshift(arr[i]);
	}
}

7 .数组元素截取

var arr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
// arr.splice(第几个开始, 删除个数); 返回操作完成的新数组,原数组也会变成截取后的数组
arr.splice(0, 2);// ['c', 'a']

③ 日期对象:Date

日期对象Date() 是一个构造函数,必须使用new来调用创建日期对象
1 .获取当前时间:

var date = new Date();// 无参数,返回当前系统时间
var myDate = new Date('2020-01-08 16:19:00'); // 返回指定时间

2 .获取当前日期的指定部分;
在这里插入图片描述
时间格式化,获得当前时间:

var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var dates = date.getDate();
var days = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
var day = date.getDay();
var h = date.getHours();
var m = date.getMinutes();
var s = date.getSeconds();

h = h > 9 ? h : '0' + h;
m = m > 9 ? m : '0' + m;
s = s > 9 ? s : '0' + s;

var myDate = '当前时间是:' + year + '年' + month + '月' + dates + '日' + days[day] + h + ':' + m + ':' + s;

时间戳:获得当前距离1970年1月1日(系统最初起始时间)总的毫秒数

var date = +new Date();
var date = +new Date('2021-01-09 10:00:00');// 指定时间的时间戳
var date = Date.now();// 新增获取当前时间戳的方法

倒计时:
输入时间戳 - 当前时间戳 = 需要倒计时的总毫秒数
需要倒计时的总秒数 = 需要倒计时的总毫秒数 / 1000;(1s = 1000ms)
需要倒计时的总天数 = 总秒数 / 60 / 60 / 24,取整
需要倒计时的总小时数 = 总秒数 / 60 / 60 % 24,取整
需要倒计时的总分钟 = 总秒数 / 60 % 60 ,取整
需要倒计时的总秒数 = 总秒数 % 60,取整

function getTimeCutDown(timer) {
		var date = new Date();
        var dater = Date.now(); //当前
        var daters = +new Date(timer); //输入
        var cutDown = (daters - dater) / 1000;
        var h = parseInt(cutDown / 60 / 60 % 24);
        var m = parseInt(cutDown / 60 % 60);
        var s = parseInt(cutDown % 60);

        h = h > 9 ? h : '0' + h;
        m = m > 9 ? m : '0' + m;
        s = s > 9 ? s : '0' + s;

        return h + ':' + m + ':' + s;
}
getTimeCutDown('2021-01-09 10:00:00');

④ 数值对象:Math
1 .最大值和最小值

Math.max(1, 2, 3);// 3	参数中含有非数字,结果为NaN,无参数返回-Infinity
Math.min(1, 2, 3); // 1

2 .圆周率

Math.PI(); // 3.141592653...

3 .向下取整(如果有小数无条件舍弃小数)

Math.floor(3.14); // 3

4 .向上取整(如果有小数无条件进位)

Math,ceil(3.14); // 4

5 .四舍五入(负数有问题)

Math.round(3.14); // 3

6 . 绝对值(对数字型字符串进行隐式转换)

Math.abs(-3.14); // 3.14

7 .随机数
Math.random(); 返回一个大于等于0,小于1的随机小数
得到两个数之间的随机整数:

function getRandom(min, max) {
	min = Math.ceil(min);
	man = Math.floor(max);
	return Math.floor(Math.random() * (max - min)) + min);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值