js中的对象(object:对象和数组)以及对象的常用方法

对象的本质和意义:(object)

对象是一个整体,用于描述一个事物的所有的相关信息;

内容之间用“,”分隔,最后一个不加逗号;

对象中一般有属性(静态)和方法(动态,方法是作为属性来存储的函数。):

你可以想象成对象就是一个人,这个人的身高,体型,性格是他本身的属性,是静态的;而这个人喜欢打篮球,喜欢吃东西,这就是他的动作也就是方法,是动态的;

使用{ }去定义一个对象,数据由键值对的组合方式;值可以是任意数据类型;

var obj = {

    sex : "不详",

    socre : 100,

    flag : true,

    sing : function{
       console.log("爱唱歌")
      },

    play : function{
       console.log("打游戏")
      }

  }

对象的操作:

访问值:(查)

console.log(obj.sex);

console.log(obj["socre"]);

console.log(obj.sing());

 

添加一个属性:(增)

obj.hobby = "睡觉";

obj["weight"] = “50kg”;

obj.dance = function(){

  }
 
修改:(改)

obj.sex = “女”;

obj[“socre”] = 99;

删除:(删)

delete obj.flag;

delete obj["sex"];

  访问属性的时候,可以用obj.属性或者obj["属性"];需要执行方法(了解这个人)的时候,需要用“.”的方式去调用。

在W3C的官网文档中提到:

 如果通过关键词 "new" 来声明 JavaScript 变量,则该变量会被创建为对象

var x = new String();        // 把 x 声明为 String 对象
var y = new Number();        // 把 y 声明为 Number 对象
var z = new Boolean();       //    把 z 声明为 Boolean 对象

请避免将字符串、数值或逻辑声明为对象。他们会增加代码的复杂性并降低执行速度。

  扩展:

JavaScript有3大对象,分别是本地对象内置对象宿主对象;

  这里引用别人的话:本地对象也经常被叫做原生对象或内部对象,包含Global和Math在内的内置对象在《JavaScript高级程序设计》里也被叫做单体内置对象,很多时候,干脆也会直接把本地对象和内置对象统称为“内置对象”,也就是说除了宿主对象,剩下的都是ECMAScript的内部的“内置”对象。

  这里说说内置对象:

  JS内置对象也被称为内部类。所谓的内部类,就是JavaScript里面封装好了的类(也就是我们不需要去自己写,可以拿过来用)。

  JavaScript中的内部类大致有:Array,Boolean,Date,Math,Number,String,RegExp.....

可以分为两类:静态类和动态类

  静态类:不需要new,直接调用这个类的属性或方法即可,例如:Math    Math.pow()

  动态类:需要new,然后再调用对象的方法或者属性  var arr =  new Array(4,5,6);   arr.push()

数组:就是一组数据的集合

js中数组的特点:(有下标,从0开始;有长度,length)

①数组定义时无需指定数据类型;

②数组定义时可以无需指定数组长度;

③数组可以存储任何数据类型的数据;

④一般是相同的数据类型。

数组的创建方式:

①字面量定义:var arr = [值1,值2,值3];(数组文本方法)

②构造函数创建:new Array(值1,值2,值3);            //当括号中没有值的时候,打印结果为[ ](空数组);

   创建数组并指定长度(只有一个值的时候为起初的长度,可自己增加值来改变这个长度):new Array(size);

  W3C中提出,出于简洁、可读性和执行速度的考虑,请使用第一种方法(数组文本方法)

var ary = new Array(4);

ary[0] = 12;

ary[1] = 13;

ary[2] = 14;        //加入值      数组名[下标] = 值 

长度为4,只加入了三个值,则第四个值为undefined;

数组操作:

数组名.方法

    1)push(5,4,3)--向数组末尾添加新的数组项,返回值新数组的长度,原数组改变  

         2)pop()--删除数组最后一项,没有参数,返回值删除项,原数组改变              

         3)unshift()--向数组开头位置添加,返回值是新数组的长度,原数组改变                    

         4)shift()--删除数组第一项,没有参数,返回值删除项,原数组改变 

        (以下是扩展方法) :                        

         5)splice()--原数组改变             

          splice(n,m)--从索引(下标)n开始,删除m个,返回值以数组的形式返回删除项          

               splice(n)--从索引n开始删除到最后             

               splice(0)--原数组清空,返回一个和原来一样的新数组            

               splice(n,m,z);从索引(下标)n开始,删除m个,把z添加到删除的位置                                 

         6)slice(n,m)--从索引n开始,查找到索引m处,不包含m,将查找到的以新数组返回,原数组不变                        

         7)concat--数组的拼接,不改变数组,返回最终连接好的新数组;                                

         8)数组转为字符串:不改变原数组             

              toString()        join('符号')         (数组.join()可以直接转数组)

清空数组的方式:

①arr.splice(0);

②arr.length = 0;

③arr = [ ];

数组的遍历:

for , for...in

数组可以使用for循环遍历  

也可以使用for...in遍历  一般使用for...in

for-in的特点:

     没有循环条件 

     自动取出下标,

     下标默认从 0 开始 ,最大下标  数组长度-1

     下标的类型为string

当需要返回两个值时,可以用对象{ }或数组[ ]的形式返回;

只能用for...in遍历对象,for不能遍历对象;(因为对象的键是一个变量)在遍历时[ ]中不能加引号;

一些数组类型:

整数数组 :  [12,3,4,5,6]

字符串数组 : ["orange","apple","pear"]

对象数组 : [{sname:"jack",age:19},{sname:"lily",age:18}]

二维数组 : [[1,3,4],[5,6,7],[1,2,5]]   (一个数组的每一项都是一个数组)

数组和对象的区别

在 JavaScript 中,数组使用数字索引。

在 JavaScript 中,对象使用命名索引。

数组是特殊类型的对象,具有数字索引。

在数组中使用数字(下标)来访问其“元素”。

在对象使用名称(属性名称和方法名称)来访问其“成员”。

发布了137 篇原创文章 · 获赞 28 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_43267344/article/details/104828387