java script object_javascript Object与Array用法

引用类型:引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型的值是引用类型的一个实例。

一、Object

ECMAScript中的对象其实就是一组数据和功能的结合。

Object类型其实是所有它的实例的基础,换句话说,Object类型所有具有的任何属性和方法也同样存在于更具体的对象中。

constructor属性:该属性保存了用于创建当前对象的函数,即当前对象的构造函数,object类型的构造函数就是Object()

hasOwnProperty方法:用于检查给定的属性是否存在于当前对象的实例中,而不是实例的原型中

isPrototypeOf方法:用于检查对象object1(父)是否存在于另一个对象object2(子)的原型链中

toString()方法:返回对象的字符串表示

valueOf()方法:返回对象的字符串、数值或者布尔值的表示

两种创建方式:

48304ba5e6f9fe08f3fa1abda7d326ab.png

var o = new Object()

var o = {

age : 22,

name : "小明"

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

操作方法:

48304ba5e6f9fe08f3fa1abda7d326ab.png

增:o.sex = "男";  o.eat = function () {};

删:delete o.age;

改:o.age = 23;

查:o.name;  o[name]; (用于变量)

引用: var other = o;  other.age = 24;  console.log(o.age)  //24  o和other指向的是同一个对象。

48304ba5e6f9fe08f3fa1abda7d326ab.png

原型:每个对象都连接到一个原型对象,并可以从中继承属性和方法。所有通过对象字面量创建的对象都连接到Object.prototype。

当我们尝试去获取某个对象的属性时,如果不能从该对象中获取到,那么js会试着向上从其原型对象中获取属性值,直到到达终点Object.prototype,如果也没找到那就是undifined。

原型连接在更新时是不起作用的。当我们对某个对象做出改变时,不会触及该对象的原型。

事例:

48304ba5e6f9fe08f3fa1abda7d326ab.png

Object.prototype.sex = "男";

var o = {

age : 22

};

console.log(o);    // {age : 22}

console.log(o.sex);  o.sex //"男"

var result = o.hasOwnProperty("age");  //true

var result = o.hasOwnProperty("sex");  //false

48304ba5e6f9fe08f3fa1abda7d326ab.png

二、Array

var arr = ["a","b","c","d","e"]  js中的数组的每一项可以保存任何类型的数据;

操作方法:

var arr = ["a","b","c","d","e"];

1.转换方法

var result = arr.toString();  //"a,b,c,d,e"

var result = arr.join();  //"a,b,c,d,e"  var result = arr.join("");  //"abcde"  join默认是按","来分割的

2.栈方法

arr.push("f");  console.log(arr);  //["a","b","c","d","e",f"]

arr.pop();    console.log(arr);  //["a","b","c","d"]

3.队列方法

arr.unshift("f");  console.log(arr);  //["f","a","b","c","d","e"]

arr.shift();  console.log(arr);  //["b","c","d","e"]

4.位置方法

var result = arr.indexOf("a");  console.log(result);  //0

5.操作方法

48304ba5e6f9fe08f3fa1abda7d326ab.png

arr.splice(3,1); //删除  console.log(arr);  //["a","b","c","e"]

arr.splice(3,1,"f"); //替换  console.log(arr);  //["a","b","c","f","e"]

arr.splice(3,0,"f"); // 插入  console.log(arr);  //["a","b","c","f","d","e"]

var result = arr.slice(2,4);//潜复制  console.log(result)  //["c","d"]

48304ba5e6f9fe08f3fa1abda7d326ab.png

6.排序方法

var arr1 = [5,9,3,4,6];

var result = arr1.reverse();  console.log(result);  //[6,4,3,9,5]

var result = arr.sort(function(a,b){return a-b});  console.log(result);  //[3,4,5,6,9]

7.合并方法

var arr1 = ["a","b"];  var arr2 = ["c","d"];  var result = arr1.concat(arr2);  console.log(result);  //["a","b","c","d"]

数组也是引用类型的,两个变量指向同一个数组:

var arr1 = arr;  arr1.push(1);  console.log(arr);  //["a","b","c","d",1]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux内核编程广泛使用的前向声明(Forward Declaration)

前向声明编程定律先强调一点:在一切可能的场景,尽可能地使用前向声明(Forward Declaration)。这符合信息隐蔽的原则。一个例子regmap那么前向声明究竟是个什么鬼?在内核写代码和看代码的童鞋,经常发现Linux内核里面充斥着这样的代…

Top 10 Project Management Software

转载于:https://www.cnblogs.com/shy1766IT/p/7082910.html

java 二维数组 floyd_Floyd算法(一)之 C语言详解

本章介绍弗洛伊德算法。和以往一样,本文会先对弗洛伊德算法的理论论知识进行介绍,然后给出C语言的实现。后续再分别给出C和Java版本的实现。弗洛伊德算法介绍和Dijkstra算法一样,弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点间最短…

南拳北腿

昨晚,熬夜看了篮球综艺节目,《我要打篮球》,实在话,我是林书豪的球迷,所以我肯定是希望林书豪球队能获胜,最后也如我所愿,两场3v3,电光飞侠都是在处于被动的情况下完成自我救赎&…

C语言const 关键字

面试的时候,应该有遇到const相关的,毕竟也是学习中的一个知识点,看完我们这篇文章,我觉得你应该可以在面试中完完全全的吃透const这个点。const和变量const uint32_t hello 3;编译的时候,编译器就知道了 hello 这个变…

pandas 第一行_Pandas数据预处理相关经验

在这里记录一些平常用的pandas操作以供参考。学习相关操作的最好方法还是找官方的文档最好,否则就会产生百度1小时,查文档3分钟的尴尬处境,之前为了找python里类似 in 的操作搜了半天资料也没找到,结果文档里就是 isin 函数就好了…

单机 amp; 弱联网手游 防破解、金币改动 简单措施

单机 & 弱联网手游 防破解、金币改动 简单措施 手游经常使用破解方法 对于一个弱联网或者单机游戏,能够从下面方面去破解: 1、找得到存档文件的,直接破解改动存档文件。 2、找不到存档文件,就在游戏执行时借助一些软件来改…

Linux 内核通知链和例程代码

概念大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用&#x…

faster rcnn resnet_RCNN系列、Fast-RCNN、Faster-RCNN、R-FCN检测模型对比

RCNN系列、Fast-RCNN、Faster-RCNN、R-FCN检测模型对比一.RCNN问题一:速度经典的目标检测算法使用滑动窗法依次判断所有可能的区域。本文则预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上提取特征,进行判断。问题二…

啰嗦一二三

第一点之前有一个抽奖,抽取野火开发板的,我记得有很多人参加了,20号的时候,获奖的同学都主动找我填写了收获地址,但是有一个同学特别调皮,到今天都没有来找我,我等了好久好久,还是没…

go设置后端启动_为什么 Rubyists 应该考虑学习 Go

点击上方蓝色“Go语言中文网”关注我们,领全套Go资料,每天学习 Go 语言如今,越来越少的 Web 开发人员开始专注于 Ruby 之类的单一语言。我们针对不同的工作使用不同的工具。在本文中,Ayooluwa Isaiah 认为 Go 是 Ruby 的完美补充。…

生涯刚开始就要转会?

昨晚,12点快睡觉的时候,一个同学给我发来的问题,篇幅有点长,都是文字,看起来可能有点乏味,不过有耐性的同学还是瞄一下,应该很多人都有这样的迷茫期,我的解答也不一定完全正确&#…

Topaz Video AI 视频修复工具(内附安装压缩包win+Mac)

目录 一、Topaz Video AI 简介 二、Topaz Video AI 安装下载 三、Topaz Video AI 使用 最近玩上了pika1.0和runway的图片转视频,发现生成出来的视频都是有点糊的,然后就找到这款AI修复视频工具 Topaz Video AI。 一、Topaz Video AI 简介 Topaz Video…

python文本编辑器报错_notepad++编辑器中运行python程序时需要注意的编码格式

本篇文章给大家带来的内容是关于notepad编辑器中运行python程序时需要注意的编码格式,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 语言:python3.4 文本编辑器:notepad 报错:SyntaxErro…

我不建议大家随便跳槽

突然的留言 我的微信好友很多,经常也有一些同学给我留言一些问题,当然能回答的我肯定会回答了,但是如果是非常难的技术问题,我一般会说,我要请教一下身边的朋友,昨晚准备睡觉的时候,收到一个同…

我是不建议随便跳槽的

突然的留言我的微信好友很多,经常也有一些同学给我留言一些问题,当然能回答的我肯定会回答了,但是如果是非常难的技术问题,我一般会说「我要请教一下身边的朋友」,我会非常刻意的去回避我技术很水的这个问题&#xff0…

ubuntu c++检测usb口事件变化_拆解报告:美式双USBA口充电插座

----- 充电头网拆解报告 第1441篇 -----最近充电头网拿到了一款美式插座,这款产品相比常规墙插插座,除了配有两个双脚AC插口外,还有两个USB-A接口,支持直接插上数据线即可为两台设备进行同时充电。其中两个USB-A口都支持最大5V4.8…

div不继承父类样式_Python编程思想(27):类的继承

-----------支持作者请转发本文-----------李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入 160442 开始学习。-----------正文---…

mysql 举例_MySQL 语句举例(一)

举例:有10个用户,输出在订单表中下单数最多的5个人的名字。my_user 表数据my_order,uid对应my_user表的id测试数据生成写一个存储过程,随机插入10000条数据:CREATE DEFINERrootlocalhost PROCEDURE test_loop( )BEGIND…

你知道Linux里D进程会搞事吗?

前言这篇文章是一位大神在实际项目中遇到问题并分析总结出来的,作为新手,能接触到这类文章应该是受益匪浅,这位同学现在在魅族工作,以后也会一直在魅族工作,是Linux 方面的专家,「魅族还有另一个Linux 大神…