javascript基础-7

1 Date对象
js提供了一个Date构造函数,通过Date构造函数可以创建不同的日期对象
创建一个日期对象
var now = new Date();//不传参,默认是一个当前时间的对象
var date = new Date(“20190520 12:00:00”);//(格式固定)指定具体的时间对象,后面的时分秒可以省略
console.log(now);
console.log(date);
//不常用的方式
var date = new Date(2019,4,20,12,0,0);// 可以把每一个项分别传入,但是注意月份从0开始的,0~11
日期格式化
var now = new Date();
console.log(now);// 默认直接打印now对象,会默认调用toString方法,打印结果是一个字符串
console.log(now.toString());// 转成标准的字符串日期数据输出(默认)
console.log(now.toLocaleString()); // 输出本地格式日期
console.log(now.toLocaleDateString()); // 本地格式日期,只输出日期部分
console.log(now.toLocaleTimeString()); // 本地格式日期,只输出时间部分
获取日期的指定部分
var now = new Date(); // 当前时间
// 获取年份
var year = now.getFullYear();
// 获取月份——》月份从0开始,范围是0~11,一般会+1
var month = now.getMonth() + 1;
// 获取日——》一个月的几号——》getDay表示获取星期几(从0开始,0表示周日,1表示周一)
var day = now.getDate();
// 获取时
var hours = now.getHours();
// 获取分
var minutes = now.getMinutes();
// 获取秒
var seconds = now.getSeconds();
var str = year + ‘年’ + month + ‘月’ + day + '日, ’ + hours + ‘时’ + minutes + ‘分’ + seconds + ‘秒’;
document.write(str);
时间戳
时间戳:表示距离1970年01月01日00时00分00秒起,过去的总毫秒数
作用:用来计算时间差
可以统计代码执行的时间
// 获取开始的时间
var begin = +new Date();
var sum = 0;
for (var i = 1; i <= 100000000; i++) {
sum += i;
}
console.log(sum);
// 获取结束的时间
var end = +new Date();
console.log(end begin); // 计算时间差,可以得出代码的执行时间毫秒数
倒计时
// 当前时间
var now = new Date();
// 将来需要倒计时的时间
var future = new Date(‘2019520 12:00:00’);
// 得到时间差——》转换成秒数(小数后忽略)
var time = parseInt((future now) / 1000);
// 秒数中获取时——》1小时=3600秒
var hours = parseInt(time / 3600);

	// 秒数中获取分——》1分钟=60秒, 对所有的分钟数, 对60求余数即可(超过60的进位到小时中了)
	var minutes = parseInt(time / 60) % 60;
	// 获取秒数,对秒数求60的余数(超过60的部分进位到分钟去了)
	var seconds = time % 60;
	
	var str = "距离下课还有: " + hours + '小时' + minutes + '分钟' + seconds + '秒';
	document.write(str);

2 Array对象
js中内置了一个Array构造函,可以用来创建数组对象(万物皆对象),每个对象中也有对应的方法
join:将数组中的每一项拼接成字符串
// 语法:arr.join(分隔符)
var arr = [1,2,3,4,5];
var str = arr.join(); // 不传参数,默认每一项之间以 逗号 进行拼接
var str = arr.join("");//按 进行拼接
var str = arr.join("");//分隔符为空串,中间就没有分隔符
数组的增删操作:push、pop、unshift、shift
// 在数组的最后,添加一个或多个项,返回添加后数组的length
array.push();
// 在数组的最后,删除一项,返回删除的项
array.pop();
// 在数组的最前面,添加一个或多个项,返回添加后数组的length
array.unshift();
// 在数组的最前面,删除一项,返回删除的项
array.shift();
数组的翻转与排序:reverse、sort
//让当前数组反转
arr.reverse();
//让当前数组排序,默认按照首字符排序
arr.sort();

	  //sort方法可以传递一个函数作为参数,设置是升序还是降序排序
	  arr.sort(function(a, b){
		// a表示前一项,b表示后一项
		// 如果返回值 0,则交换位置
		// 从小到大升序排列
		return a  b;
		//从大到小降序排列
		return b  a;
	  });
  数组的合并和截取:concat、slice
	  //合并数组,不会改变原数组,会返回一个新的拼接好的数组
	  var newArr = arr.concat(arr2);
	  //数组的截取,从数组中截取一部分,不会改变原数组,返回截取的新数组
	  var newArr = arr.slice();// 不传参——》从开始截取到最后,截取整个数组——》相当于复制一份
	  var newArr = arr.slice(begin);// 从begin(下标)开始,截取到最后,包括begin!!
	  var newArr = arr.slice(begin,end);// 从begin开始,截取到end,包括begin,不包括end!!!
  数组的删除、添加、替换:splice
	  //方法可以在数组的任意位置,添加或者删除任一项(会改变原数组)
	  arr.splice(从哪开始删除,删除几个,添加的项1,添加的项2,......)
	  arr.splice(begin,deleteCount,item1,item2,...)
	  //删除从下标为1开始删除,删除两项
	  arr.splice(1,2);// 删除
	  //添加把第一项、第二项添加到下标2的位置
	  arr.splice(2,0,'第一项','第二项');// 添加
	  //替换把下标2这一项替换成新项(先删除,再添加)
	  arr.splice(2,1,'新项');// 替换
增删操作,都会改变原数组!!
数组查找元素:indexOf、laseIndexOf
	  //indexOf()——》查找数组中元素第一次出现的下标——》如果找不到,返回1
	  var arr = [1,2,3,4,5,4,3,2,1];
	  console.log(arr.indexOf(2));// 查找2在数组中第一次出现的下标
	  console.log(arr.indexOf(100));// 数组中不存在的值,返回1

	  //lastIndexOf()——》查找数组中元素最后一次出现的下标——》如果找不到,返回1
	  var arr = [1,2,3,4,5,4,3,2,1];
	  console.log(arr.lastIndexOf(2));// 查找2在数组中第一次出现的下标
	  console.log(arr.lastIndexOf(100));// 数组中不存在的值,返回1
清空数组
	  var arr = [1,2,3,4,5];
	  // 1、将数组赋值为一个空数组,推荐
	  arr = [];
	  // 2、直接修改数组的长度为0
	  arr.length = 0;
	  // 3、删除数组中的所有元素
	  arr.splice(0,arr.length);// 从下标0开始,删除arr.length个元素

3 基本包装类型
简单数据类型是没有任何属性和方法的。
但是为了方便操作基本数据类型,js中还提供了三个特殊的复杂类型:String、Number、Boolean对象。可以使用其中的方法:
Number: var num = new Number(123);
String: var str = new String(‘abc’);
Boolean: var flag = new Boolean(true);
基本包装类型:把基本类型包装成复杂类型
//简单数据类型没有任何的属性和方法
var str = “abc”;
//但是却可以直接使用.length方法——》原因是底层浏览器默认把简单数据类型包装成复杂类型,就可以调用方法了
console.log(str.length);
基本包装类型的步骤:
1. 在js中为了操作方便,如果是简单数据类型要获取方法时——》默认转换成复杂数据类型
2. 变成复杂数据类型之后——》调用其方法,得出结果
3. 结束时,在还原成简单数据类型

4 Number对象
Number对象是数字的包装类型,数字可以直接使用这些方法
var num = 11.111111;
//保留几位小数
console.log(num.toFixed(2));
//转成字符串
console.log(num.toString(2));

5 Boolean对象
Boolean对象是布尔类型的包装类型。

var flag = true;
//转成字符串
console.log(flag.toString();)//底层先转成基本包装类型——》使用方法得到字符串——》还原成简单数据类型
undefined和null没有包装类型!!!所以没有方法!!

6 String对象

字符串可以类似于看做是一个数组(不是真的数组——》伪数组)
字符串可以遍历——》字符串不是数组,不是真的数组
var str = ‘abcdefg’;
// 底层会默认转换成 String对象,var str = new String(‘abcdefg’);
//打印字符串中下标为0的字符
console.log(str[0]);
//字符串的遍历(类似于数组)
for (var i = 0; i < str.length; i++) {
console.log(str[i]);
}
查找指定字符的位置:indexOf、laseIndexOf
//indexOf()——》查找字符第一次出现的下标——》如果找不到,返回1
var str = “abdedba”;
console.log(str.indexOf(a));// 查找a在str中第一次出现的下标
//lastIndexOf()——》查找字符最后一次出现的下标——》如果找不到,返回1
var str = “abdedba”;
console.log(str.lastIndexOf(a));// 查找a在str中最后一次出现的下标
去除字符串首尾的空格:trim
var str = ’ hello world ';
//去除字符串首尾的空格,中间的不管
str = str.trim();// 返回去除首尾空格之后的字符串,重新赋值给str
console.log(str);

字母大小写转换:toUpperCase、toLowerCase
var myName = ‘ZhangSan’;
//每个英文字母转换成大写
console.log(myName.toUpperCase());
//每个英文字母转换成小写
console.log(myName.toLowerCase());
字符串拼接与截取:concat、slice、substring、substr
拼接
var str1 = ‘abc’;
var str2 = ‘def’;
//拼接+用的最多
console.log(str1 + str2);
//拼接字符串(不用)会返回一个新字符串
var newStr = str1.concat(str2);
console.log(newStr);
字符串的截取
var str = ‘abcdefg’;
//slice(begin,end)——》从begin开始,截取到end(有始无终)
console.log(str.slice(1, 3));
//subString(begin,end)——》从begin开始,截取到end(有始无终)
console.log(str.substring(1, 3));
//subStr(begin,length)——》从begin开始,截取length个,包括begin
console.log(str.substr(1, 3)); // bcd
将字符串分割成一个数组:split和arr.join()正好相反
// join 将数组的值拼接成一个字符串
// split(‘分割符’) 将字符串分割成一个数组, 返回值, 就是分割后得到的数组
var str = ‘a|b|c|d’;
//split(‘分割符’): 将字符串通过分隔符分割成一个数组, 返回分割后得到的数组
var arr = str.split(’|’);
console.log(arr); // [“a”, “b”, “c”, “d”]
字符串替换:replace
可以把字符串中特定字符替换掉
var words = ‘大菜鸡, 真坑啊!!! 大菜鸡, 大菜鸡’;
//str.replace(‘aa’,‘bb’):将str中的第一个aa替换成bb——》返回替换后的结果
words = words.replace(‘菜鸡’, ‘’);
console.log(words);
//(拓展)替换所有的需要使用后面讲的正则——》g:全局
words = words.replace(/你妹的/g, ‘’)
console.log(words);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值