js内置对象
日期对象Date
创建日期对象
(1)Date()无参;
(2)Date(字串符 "2020-11-3 14:15:20" )
(3)Date(年,月,日,时,分,秒 2020,11,3,14,15,20 )
使用对象
toString() 默认方法,可省略
valueOf() 输出原始值
getYear() 获取从1900年至今的年数
getFullYear() 获取四位数的年份
getMonth() 获取的是从0至今的月份
getDay() 获取星期几
getTime() 获取时间
getMinutes() 获取当前时间的分
getSeconds() 获取当前时间的秒
getHours() 获取当时时间的小时,从0开始
get(Local)DateString() 获取(本地)日期
Get(Local)TimeString() 获取(本地)时间
<script>
var now = new Date();
console.log(now);
//Tue Nov 03 2020 19:07:14 GMT+0800 (中国标准时间)
console.log(now.toString());
//Tue Nov 03 2020 19:08:49 GMT+0800 (中国标准时间)
console.log(now.valueOf());
//1604401778823 valueOf还原初始值 从1970年开始
var date1 = new Date("2020-11-3 19:15:20");
console.log(date1);
//Tue Nov 03 2020 19:15:20 GMT+0800 (中国标准时间)
var date2 = new Date(2020,11,03);
console.log(date2);
//Thu Dec 03 2020 00:00:00 GMT+0800 (中国标准时间)
console.log(date2.getYear());
//120 从1900年到现在的年份
</script>
案例 计算两个日期之间时间差
<script>
var day1 = new Date("2020-11-03 00:00:00");
var day2 = new Date(2015,10,31,15,23,56);
var cha=riQicha(day1,day2);
//console.log(cha);
//1798天8小时36分4秒
console.log(cha.day);
//1798 只输出到天
function riQicha(start,end){
var chazhi=start-end;
var day = Math.floor(chazhi/(1000*60*60*24));
var hour = Math.floor(chazhi/(1000*60*60)%24);
var minute = Math.floor((chazhi/(1000*60)) % 60);
var second = Math.floor((chazhi/1000) % 60);
//return day+"天"+hour+"小时"+minute+"分"+second+"秒";
return {
day:day,
hour:hour,
minute:minute,
second:second
}
}
</script>
数组对象
创建数组
字面量数组: var arr = [[],[]];
通过构造创建数组:var arr = new Array();
var arr = new Array(初始化元素);
数组对象的使用
直接输出数组对象,输出的是原始值
valueOf() 也输出的是原始值
toString() 输入字符串
push() 在数组的尾部参数可以是单个元素,也可以是数组
pop() 从尾部删除指定的元素
unshift() 在数组开始插入元素
Shift() 从数组开始删除元素,只能一个一个删除
reverse() 反转数组,修改数组本身
sort() 默认按unicode编码排序
concat() 把数组元素拼接上,返回一个新数组
slice() 截取数组指定的元素,返回一个数组,不包括最后的索引元素
splice() 从指定位置开始截取指定长度的元素,返回一个新数组
indexOf() 从开始查找指定元素的索引
lastIndexOf() 从末尾查找指定元素的索引
every() 参数是一个函数,函数自动接收三个参数:item,index,array,会对数组中的每一个元素进行函数操作,只要数组中的 任一个元素没有参与操作,就返回false,多用于检查数组元素.
forEach() 对数组中的每个元素进行一次函数操作,没有返回值
<script>
//字面量
var arr = [];
arr[0] = 12;
arr[1] = "str";
arr[5] = 30; //自增长长度
console.log(arr);//直接输出的是原始值
console.log(arr.valueOf());//valueOf 输出的也是原始值
console.log(arr.toString());//toString 输出的是字符串
arr.push(8,10,[1,2,5]); //会改变数组本身 也可以是数组 数组会被看成是一个元素
console.log(arr.toString());
arr.pop(10,[1,2,5])
console.log(arr.toString());
//12,str,,,,30,8,10 pop 从数组最后删除 只能一项一项删除
arr.unshift(6,9,[50,40]) // unshift 从数组开始插入元素 也可以插入数组
console.log(arr.toString());
arr.shift(); // 从数组开始删除 只能一项一项删除 改变数组本身
console.log(arr.toString());
//9,50,40,12,str,,,,30,8,10
arr.shift();
console.log(arr.toString());
//50,40,12,str,,,,30,8,10
arr.reverse(); //反转数组,修改数组本身
console.log(arr.toString());
arr.sort() //默认按unicode编码排序
console.log(arr.toString());
//通过构造函数创建数组
var arr1 = new Array();
arr1[0]=5,
arr1[1]=8,
arr1[4]=12
var arr2=arr.concat(arr1); //concat 把数组元素拼接上,返回一个新数组
console.log(arr2.toString());
var arr3=arr2.slice(2,5); //截取数组指定的元素,返回一个数组,不包括最后的索引元素 不改变数组本身
console.log(arr3.toString());
console.log(arr2.toString());
var arr4=arr2.splice(3,10); //从指定位置开始截取指定长度的元素,返回一个新数组 相当于删除了 会改变数组本身
console.log(arr4.toString());
var arr5=arr4.indexOf(8); //从开始查找指定元素的索引 有相同的只能找出第一个
console.log(arr5.toString());
var arr6=[2,3,4,5,9,15]
console.log(arr6.lastIndexOf(9));//从末尾查找指定元素的索引 有相同的只能找出第一个
var arr7=arr6.every(everyF); // 参数是一个函数,函数自动接收三个数:item,index,array,
//会对数组中的每一个元素进行函数操作,只要数组中的任一个
元素没有参与操作,
//就返回false,多用于检查数组元素.
function everyF(item,index,array){
if(item>=0){
return true;
}
}
console.log(arr7.toString());
var arr8=arr6.forEach(forEachF); //对数组中的每个元素进行一次函数操作,没有返回值
function forEachF(item,index,array){
item = item*index;
console.log(item);
}
console.log(arr8);
</script>
String字符串
创建对象:
1 字面量方式: var str1 = “台独没出路”;
2 构造函数创建对象 var str2 = new String(“回归是正道”);
字符串的使用
charAt() 获取指定位置的字符
charCodeAt() 获取指定位置的字符unicode码
字符串对象[索引] 也可以通过索引获取某个位置的字符
concat() 拼接字符串
Slice() 从指定的起始和结束位置,截取字符串,不包括结束
当结束索引是负数时,真实结束位置等于字符的个数加上指定的结束位置
substring() 从指定的起始和结束位置,截取字符串,不包括结束
注意:1 两参数以最小参数为起始位置,最大参数为结束位置
2 参数小于等于零时,都按零取值
substr() 从指定的起始位置,按推定长度截取字符串
indexOf() 获取指定字符(串)的索引值,indexOf每次会从上次执行的位置开始
lastIndexOf() 从字符串的尾部开始获取指定字符(串)的索引值
trim() 删除字符串前后空格
to(Locale)UpperCase 将字符转换成大写
to(Locale)LowerCase 将字符转换成小写
search() 查找指定字符串的起始索引,或者按正则表达式查找
replace(被替换的内容,替换内容)
split(“分割符”) 按指定的分割符把字符串拆分成数组,并返回
注:如果要把普通字符串分割成数组,分割符用不加空格的双引号
formCharCode(unicode编码列表,,,,) 这个方法属于String对象,把指定的一组编码转成字符串
<script>
//String 字符串是不可变的
//创建对象:
//字面量方式
var str1="拖延是一种恶习";
// 构造函数创建对象
var str2=new String(" 科 技 时 代 ")
console.log(str1.charAt(2)); // charAt获取指定位置的字符
console.log(str1.charCodeAt(2)); //charCodeAt 获取指定位置的字符unicode码
console.log(str1.concat("","会腐蚀人的心灵"))//concat 拼接字符串
console.log(str1.slice(0,-2)); // slice从指定的起始和结束位置,截取字符串,不包括结束
//当结束索引是负数时,真实结束位置等于字符的个数加上指定
的结束位置
console.log(str1.substring(-2,3)); //substring从指定的起始和结束位置,截取字符串,不包括
结束
//注意:1 两参数以最小参数为起始位置,最大参数为结束位置
//2 参数小于等于零时,都按零取值
console.log(str1.substr(2,4)); //substr从指定的起始位置,按推定长度截取字符串
console.log(str1.indexOf("是")); // indexOf获取指定字符(串)的索引值,indexOf每次会从上次
执行的位置开始
console.log(str1.lastIndexOf());//lastIndexOf从字符串的尾部开始获取指定字符(串)的索引值
console.log(str2.toString())
console.log(str2.trim()) //trim删除字符串前后空格
var str3="a,b,c,d,r,t,g,h"
console.log(str3.toUpperCase());//toUpperCase将字符转换成大写 toLowerCase 将字符转换
成小写
console.log(str1.search("是一种")); //search查找指定字符串的起始索引,或者按正则表达式查找
console.log(str1.replace("恶习","不是一种好习惯")) //replace 被替换的内容,替换内容
console.log(str1.split("延")); //按指定的分割符把字符串拆分成数组,并返回
// 注:如果要把普通字符串分割成数组,分割符用不加空格的双引号
var arr=str1.split('');
console.log(arr.toString());
var str4=String.fromCharCode(65,66,67);// formCharCode(unicode编码列表,,,,) 这个方法
属于String对象,把指定的一组编码转成字符串
console.log(str4)
</script>