对象、内置对象、数组对象、字符串对象的使用

概念:无序的相关属性和方法的集合

组成:属性、方法

属性:特征

方法:行为

创建对象三种方式:

1、利用对象字面量创建对象{}


var obj={};//创建一个空对象
var obj ={
uname:"qwe",
age:12,
sex:"男",
sayHi:function() {
console.log("hi~");
}
}
2、使用对象
console.log(obj.uname);//第一种
console.log(obj["age"]);//第二种
3、调用方法
obj.sayHi();

eg:
    var obj={};
        var obj= {
            //定义属性
            name:"可可",
            class:"阿拉斯加犬",
            age:5,
            color:"棕红色",
            //定义方法
            jiNeng:function() {
                console.log("汪汪汪~");
                console.log("演电影");
            }
        }
        console.log(obj.name,obj.class,obj.age,obj.color);
        obj.jiNeng();

2、利用new object创建对象

var obj=new Object();
obj.uname="name";
obj.age=12;
obj.sayHi= function() {
consoloe.log(.);
}

eg:
 var obj=new Object();
        obj.uname="鸣人";
        obj.sex="男";
        obj.age=19;
        obj.sayHi=function() {
            console.log("影分身术");
        }
        console.log(obj.uname,obj.sex,obj.age);
        obj.sayHi();

3、构造函数创建对象(不需要retrurn返回值)

function 构造函数() {//构造函数名首字母大写
    this.属性=值;
this.方法=function(){}
}
new 构造函数名();//用new关键字调用构造函数

eg:
function Yx(name,type,red) {
        this.name=name;
        this.type=type;
        this.red=red;
        this.gong=function(gong) {
            console.log(gong);
        }
    }
    var LinaPo=new Yx("廉颇","力量型","500血量");
    console.log(LinaPo);
     LinaPo.gong("近战");
    var HouYi=new Yx("后裔","射手型","100血量");
     HouYi.gong("原战");
     console.log(HouYi);

遍历对象(用for in)

for(var 变量 in 对象) {
console.log(k);//输出属性名
console.log(obj[k]);//输出属性值

eg:
var obj={
    name:"老师",
    age:18,
    sex:"男"
}
for(var k in obj) {
console.log(k);//name,age.sex
console.log(obj[k]);//老师,18,男

内置对象

定义:js自带的一些对象,提供常用的属性和方法

查阅内置对象参考文档:MDN Web Docs

   时间戳:获得总毫秒数(距离1970年1月1日)

   // 1、通过以下两种获取 
        var date=new Date();
          console.log(date.valueOf());
          console.log(date.getTime());
        //   2、简单写法
        var date1 =+new Date();
        console.log(date1);
        // 3 H5 新增获取
        console.log(Date.now());

eg:Dete()  日期对象,是一个构造函数,必须使用new来调用创建

1、无参
var date =new Date();
console.log(date);//显示当当前日期

2、
2.1数字参数
var date1=new Date(2019,10,1);
console.log(date1);2019/11/1
2.2字符串参数
var date2=new Date("2022-10-1  8:8:8");
console.log(date2);//2022/10/1  8:8:8

  格式化日期年月日2022年1月3日 星期一

  var date=new Date();
    var year=date.getFullYear();//年
    var month=date.getMonth()+1;//月
    var dates=date.getDate();//日
    var arr=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];
    var day=date.getDay();//获取星期
    var hours=date.getHours();//获取小时数
    var minutes=date.getMinutes();//获取分钟数
    var second=date.getSeconds();//获取秒数
    console.log(`今天是:${year}年 ${month}月 ${dates}日 星期${day} ${hours}时 ${minutes}分 ${second}秒`);
    

 获取当前时间

   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());

 倒计时核心算法

/ d=parseInt(总秒数/60/60/24);//计算天数
        // h=parseInt(总秒数/60/60%24);//计算小时
        // m=parseInt(总秒数/60%60);//计算分数
        // s=parseInt(总秒数%60);//计算当前秒数

数组对象

检测是否为数组的两种方式

1、instanceof

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

2、Array.isArray(参数);   h5新增方法  ie9以上版本支持

var arr=[];
var obj={};
console.log(Array.isArray(arr));//返回true
console.log(Array.isArray(obj));//返回false

 添加删除数组元素

1、 push(参数)  在数组后面添元素     用了之后直接输出数组arr.push(元素)返回的是数组长度

2、unshift(参数)在数组的开头,添加元素    用了之后直接输出数组arr.unshift(元素)返回的是数组长度

3、pop()   删除最后一个元素(一次只能删一次)  不需要参数       用了之后直接输出数组arr.pop()返回的是删除的元素的值

4、shift() 删除第一个元素      不需要参数       用了之后直接输出数组arr.pop()返回的是删除的元素

数组排序

reverse()  颠倒数组顺序   改变原数组  返回新数组   (翻转数组)

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

sort([compareFunction]) 对数组排序    改变原数组  返回新数组     如果没有函数,元素按照Unicode位点排序     

冒泡排序
var arr =[1,3,2];
arr.sort(function(a,b){ 
return a-b;  //升序
return b-a;//降序
}
);
console.log(arr);//3,2,1

 数组索引方法

 indexOf (数组元素)  查找数组第一个满足元素索引   如果在数组中找不到元素  返回-1

lastIndexOf(数组元素) 查找数组最后一个满足元素索引   如果在数组中找不到元素  返回-1

 数组转换为字符

toString()

var arr=[1,2,3];
console.log(arr.toString());//1,2,3

join(分隔符)

var arr=[1,2,3];
console.log(arr.join());//1,2,3
console.log(arr.join(-));//1-2-3

 字符串对象

基本包装类型 :把简单的数据类型包装为复杂数据类型

执行过程:

生成临时变量,把简单类型包装成为复杂数据类型
var temp=new String('adcd');
赋值给我们声明的字符变量
str=temp;
销毁临时变量
temp=null;

字符串不可变:就是重新赋值也是在内存中重新开辟空间,字符串名称指向新的值,旧的依然存在

 根据字符返回位置

根据字符串返回位置  str.indexOf("要查找的字符",[起始的位置]);
 var str='我的钱,钱没了';
console.log(str.indexOf('钱'));//2
console.log(str.indeOf('钱',3));//从索引号3开始往后查找

字符串对象返回字符位置案例

 <script>
        var str="abcoefoxyozzopp";
        var index=str.indexOf('o');
        var num=0;
        while(index!==-1) {
            console.log(index);
            num++;
            index=str.indexOf('o',index+1);
        }
        console.log('o出现的次数是:'+num);
    </script>

 根据位置返回字符

charAt(index)  :返回指定位置的字符(index字符串的索引号)   str.charAt(0)

charCodeAt(index)  :返回指定位置处字符的ASCLL码(index字符串的索引号)str.charCodeAt(0)

目的:判断用户按下的按下的哪个键

str[index] :获取指定位置的字符(index字符串的索引号)   HTML5,IE8+支持和charAt()等效

 eg:统计出现最多的字符和次数

核心算法:利用charAt() 遍历这个字符串
把每个字符串都存储给对象,如果对象没有该属性,就为1,如果存在就+1
遍历对象,得到最大值和该字符
  var str="abcoefoxyozzopp";
  var o={};
for(var i=0;i<str.length;i++){
    var chars=str.charAt(i);//char是字符串的每一个字符
    if(o[chars]) {//o[chars]得到的是属性值
     o[chars]++;
    } else {
    o[chars]=1;
    }
}
console.log(o);
var max=0;
for(var k in o) {
    //k得到的是属性名
    //o[k]得到的四属性值
    if(o[k]>max) {
    max=o[k];
    ch=k;
}
}
console.log(max);
console.log("最多的字符是“+ch);

concat(str1,str2,str3):方法用于连接两个或多个字符串,拼接字符串,等效于+,

var str='andy';
console.log(str.concat('red');//andyred

 substr(start,length) :从start位置开始(索引号),length取得个数,重点记这个

var str1="我的苹果";
console.log(str1.substr(1,2));//苹果

 slice(start,end) :从start位置开始,截取到end位置,end取不到     索引号

 substring(start,end)::从start位置开始,截取到end位置,end 取不到 基本和slice相同  但是不接受负值

 替换字符 replace("被替换的字符”,‘替换为的字符’);

var str='andy';
console.log(str.replace('a','b');//bndy


把所有o替换成*
var str="abcoefoxyozzopp";
while(str1.indexOf('o') !==-1) {
    str =str.replace('o','*');
}
console.log(str1);

字符转换为数组 split("分隔符“);

var str2='red,str,blue';
console.log(str.split(',');//[red,str,bule]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值