js内置对象笔记

1.Date对象

注意:Date()是构造函数 必须使用new来实例化日期对象

  1. 没有参数,返回系统当前时间
var Date = new Date();
  1. 有参数
var date1 = new Date(2020,3,9);//数字型
console.log(date1);//返回4月 不是3月
var date2 = new Date('2020-3-9');//字符串型

格式化日期年月日分秒

var date = new Date();
console.log(date.getFullYear());//返回当前时间 年
console.log(date.getMonth()); //返回的月份小一个月(0-11)
console.log(date.getDate());//返回几号
console.log(date.getDay());//返回周几 (周日0到周六6)
console.log(date.getHours());//时
console.log(date.getMinutes());//分
console.log(date.getSeconds());//秒

获取总的毫秒(时间戳)
距离1970年1月1号过了多少毫秒数
1.valueOf()
2.getTime()
3.

var date = +new Date();//+new Date() 返回总的毫秒数

4.H5新增

console.log(Date.now());

案例倒计时

function countDown(time){
var nowTime = +new Date();
var inputTime = +new Date(time);
var times = (no![在这里插入图片描述](https://img-blog.csdnimg.cn/20200309221514352.JPG)wTime-inputTime)/1000;//总的秒数
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+"秒";
}
var date = new Date();
console.log("现在的时间"+date);
console.log(countDown('2020-1-1 00:00:00' ));

运行截图
在这里插入图片描述

2.数组对象

创建数组
1.利用数组字面量
2.利用new Array()
检测是否为数组
1.instanceof 运算符

var arr = [];
console.log(arr instanceof Array);//返回true

2.Array.isArray(参数);//H5新增 ie9以上版本
添加删除数组方法
1.push() 在数组的末尾添加一个或多个数组元素

var arr = [1,2,3];
//arr.push(4,'hello');
console.log(arr.push(4,'hello'));//返回新数组长度
console.log(arr);

2.unshift()在数组开头添加一个或多个数组元素
3.pop()删除数组的最后一个元素

var arr = [1,2,3];
//arr.pop();
console.log(arr.pop());//返回删除的元素值3

4.shift()删除数组的第一个元素,素组长度-1,返回第一个元素值
数组排序
1.翻转数组reverse()
2.数组排序sort()

var arr = [2,54,32,1,42,21,11];
console.log(arr.reverse());
console.log(arr.sort());//[1,11,2,21,32,42,54]
arr.sort(function(a,b){
return a-b;//升序
//return b-a;//降序
});
console.log(arr);//[1,2,11,21,32,42,54]

数组索引
1.indexOf() 数组中查找给定数组的第一个索引
2.lastIndexOf() 在数组中的最后一个索引

var arr = [1,2,3,4,5,2];
console.log(arr.indexOf(2));//只返回第一个满足条件的索引号1,不存在的话返回-1
console.log(arr.lastIndexOf(2));//返回5

数组去重案例(重点)
题目有一个数组[‘c’,‘a’,'z,‘a’,‘x’,‘a’,‘x’,‘c’,‘b’],要求去除数组中重复的元素

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

数组转换为字符串
1.toString()
2.join(‘分隔符’)
concat,slice,splice

  1. concat() 连接两个或多个数组,返回一个新数组,不影响原数组
  2. slice() 数组截取slice(begin,end),返回截取的新数组,不影响原数组
var arr = [1,2,3,4,5];
console.log(arr.slice(1,3));//[2,3] 不包括end
  1. splice 数组删除splice(第几个开始,删除几个) 返回被删除的新数组,会影响原数组
    补充:
    splice插入替换
//替换
var arr = [1,2,3,4,5];
console.log(arr.splice(1,0,7,8));//[]
console.log(arr);//[1,7,8,2,3,4,5]
//删除
var arr = [1,2,3,4,5];
console.log(arr.splice(1,3,7,8));//[2,3,4]
console.log(arr);//[1,7,8,5]

3.字符串对象

基本包装类型

var str = 'hello';
console.log(str.length); //5

对象才有属性的方法 复杂数据类型也有属性和方法
简单数据类型:Number,String,Boolean,undefined,null
复杂数据类型:数组,函数,对象
简单数据类型为什么会有length属性?
基本包装类型 :把简单数据类型包装成复杂数据类型

//(1)生成临时变量,把简单数据类型包装为复杂数据类型
var temp = new String('andy');
//(2)把临时变量的值给str
str = temp;
//(3)销毁临时变量
temp = null;

字符串不可变
含义:指的里面的值不可变。看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间

var str = 'a';
console.log(str);//a
str = 'b'
console.log(str);//b

过程
根据字符返回位置
字符串所有方法,都不会修改字符串本身,操作完成都会返回一个新的字符串
1.indexOf()
2.lastIndexOf()

var str = '这是一个字符串,字符串';
console.log(str.indexOf('字'));//4
console.log(str.indexOf('字',5));//8 从索引号5的位置往后找

案例返回字符串位置
查找字符串“abcoefoxyozzopp”中所有的o出现的位置以及次数

var num = 0;
var str = "abcoefoxyozzopp";
var index = str.indexOf('o');
while(index !==-1){
 console.log(index);
 index = str.indexOf('o',index+1)
 num++;
}
console.log(num);

根据位置返回字符串(重点)
1.charAt(index) 返回指定位置的字符
2.cahrCodeAt(index)获取指定位置处字符的ASCII码
3.str[index]获取指定位置处字符 H5新增
案例:返回字符位置
判断字符串“abcoefoxyozzopp”中出现次数最多的字符,并统计其次数

var str = "abcoefoxyozzopp";
var a = {};
for(var i = 0;i<str.length;i++){
     var char = str.charAt(i);
     if(a[char]){
     	a[char]++;
     }else{
        a[char] = 1;
     }
}
console.log(a);
var max = 0;
var ch = '';
for(var k in a){
   if(a[k] > max){
      max = a[k];
      ch = k;
   }
}
console.log(max);
console.log(ch);

字符串操作方法(重点)
1.concat(str1,str2,str3…) 连接两个或多个字符串。拼接字符串。等效于+
2.substr(start,length) 从start位置开始(索引号),length取的个数
3.slice(start,end) 从start位置,截取end位置,end取不到
4.substring(start,end) 从start位置开始,截取到end位置,end取不到
替换字符串以及转换为数组
replace(‘被替换的字符’,‘替换为的字符’)
split(‘分隔符’) 字符转换为数组

简单数据类型与复杂数据类型

简单数据类型:Number,String,Boolean,undefined,null
复杂数据类型:数组,函数,对象
简单数据类型null 返回一个空对象 object
堆和栈
简单数据类型存放在栈里面
复杂数据类型存放在堆里面:首先在栈里面存放地址 十六进制表示 ,这个地址指向堆里面的数据

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值