js基础-引用类型-Object对象 ★★★☆

最新推荐文章于 2020-03-03 11:11:05 发布
原创 最新推荐文章于 2020-03-03 11:11:05 发布 · 302 阅读
· 0
· 0 ·
CC 4.0 BY-SA版权
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
文章标签:

#javascript #对象

javascript 专栏收录该内容
74 篇文章
订阅专栏
本文介绍了JavaScript中对象的基本操作,包括实例化方式、属性访问、添加方法等。同时深入探讨了Object对象提供的静态方法如Object.keys()和实例方法如valueOf()等,并通过示例展示了这些方法的应用。

Object类型

1. 实例化对象

所有其他对象都继承Object。

创建object实例的方式有两种:

  • 第一个种是使用new操作符后跟Object构造函数
var person = new Object() 

注意:O是大写

  • 第二种是使用对象字面量:
var person = { 
name: 'tg'
};

访问对象属性使用的是点表示法,也可以用方括号表示法来访问。

var person = { 
name: 'tg'
};
console.log(person.name); // "tg"
console.log(person['name']); // "tg"

注意:如果对象属性名是不符合语法的或属性名是关键字或保留字,只能使用方括号表示法。例如:

var person = { 
"1a" : 1
};
person["1a"]; // 1
person.1a // 会报错

2、给对象添加方法

我们可以像添加属性一样给对象添加方法:

var o = {}; 
o.test = function(){
console.log(1);
}

o.test(); //1

3、Object对象的静态方法

3.1 Object.keys()、Object.getOwnPropertyNames()

Object.keys()方法和Object.getOwnPropertyNames()方法一般用来遍历对象的属性,它们的参数都是一个对象,返回一个数组,该数组的项都是对象自身的(不是继续原型的)的所有属性名。两者的区别在于,Object.keys()只返回可枚举的属性,Object.getOwnPropertyNames()方法还返回不可枚举的属性名。

var arr = ['a', 'b']; 
console.log(Object.keys(arr)); // ["0", "1"]
console.log(Object.getOwnPropertyNames(arr)); // ["0", "1", "length"]

数组的length属性是不可枚举的。

4、Object对象的实例方法

valueOf():返回当前对象对应的值,默认情况下返回对象本身。 
toString():返回当前对象对应的字符串形式。
toLocaleString():返回当前对象对应的本地字符串形式。
hasOwnProperty():判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性。 如果是自身的属性,返回true,否则返回false。
isPrototypeOf():判断当前对象是否为另一个对象的原型。如果是,返回true,否则返回false。
propertyIsEnumerable():判断某个属性是否可枚举。

(1)valueOf()

valueOf()方法返回当前对象对应的值,默认情况下返回对象本身。

var o = { 
name: 'tg',
age: 24
};
console.log(o == o.valueOf()); // true

(2)toString()

toString()返回当前对象对应的字符串形式。

var o = { 
name: 'tg',
age: 24
};
console.log(o.toString()); // "[object Object]"

(3)hasOwnProperty()

hasOwnProperty()判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性。 如果是自身的属性,返回true,否则返回false。

var o = { 
name: 'tg',
age: 24
};
console.log(o.hasOwnProperty('name')); // true
console.log(o.hasOwnProperty('toString')); // false

toString()方法是继承原型的,所以返回后false。

(4)isPrototypeOf()

isPrototypeOf()方法判断当前对象是否为另一个对象的原型。如果是,返回true,否则返回false。

function Test(){}

var t = new Test();

console.log(Test.prototype.isPrototypeOf(t)); // true

确定要放弃本次机会?
福利倒计时
: :

立减 ¥

普通VIP年卡可用
立即使用
front_end_fan
关注 关注
  • 0
    点赞
  • 踩
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
  • 分享
    复制链接
    分享到 QQ
    分享到新浪微博
    扫一扫
  • 举报
    举报
专栏目录
【JS】JavaScript-对象-Object-内建对象-宿主对象-自定义对象-操作对象-基本数据类型与引用数据类型区别
YK菌的博客
12-23 416
文章目录对象(Object)1. 对象的分类:1.1 内建对象1.2 宿主对象1.3 自定义对象2. 操作对象2.1 创建对象方式一方式二2.2 向对象中添加属性2.3 读取对象中的属性2.4 删除对象中的属性2.5 遍历2.6 使用对象字面量,在创建对象时直接向对象中添加属性3. 基本数据类型和引用数据类型的区别 对象(Object) 对象是JS中的引用数据类型 对象是一种复合数据类型,在对象中可以保存多个不同数据类型的属性 使用typeof检查一个对象时,会返回object 1. 对象的分类: 1.
js中判断Object、Array、Function等引用类型对象是否相等
01-19
在迭代中,我们还要注意的是,对象或者数组中的元素可能是一个任意值——除了原始类型值、object、arrray外,这个值还可能是一个方法、一个DOM对象或者window对象,可能你已经注意到了,有部分引用类型是不能进行...
参与评论 您还未登录,请先 登录 后发表或查看评论
.NET中大写的Object和小写的object类有什么区别?
changyuming的专栏
10-17 3207
object类型在.netframework中是Object的别名,在c#中的统一类型系统中,所有类型都是直接或间接从Object继承。
JS 将form表单数据快速转化为object对象(json对象)
jaymou
03-03 4189
直接上代码 /** * 将Form的数据转化成Javascript的Json对象 */ $.fn.serializeObject = function(){ var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name] !== undefined)...
JavaScript高级教程-引用类型.pptx
07-29
JavaScript是一种动态类型的编程语言,它的数据类型分为基本数据类型和引用数据类型。基本数据类型包括Undefined、Null、Boolean、Number、String以及ES6新增的Symbol。这些类型在JavaScript中被视为原始数据类型,...
JavaScript基础篇(3)之Object、Function等引用类型
01-19
阅读目录 Object类型 1、通过构造函数来创建 2、通过字面量表示法来创建对象 Array类型 同样Array也有两种创建方式: ...我们在《一步步学习javascript基础篇(1):基本概念》中简单的介绍了五种基本数据类型Undef
js实现前端数据分页
热门推荐
front_end_fan
09-14 1万+
效果图: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>前端数据分页</title> <style> *{padding:0;margin:0;list-style:none;text-decoration: none;} #job_box{width:1000
js基础-富文本编辑器
front_end_fan
09-21 4282
富文本编辑器1、富文本编辑器简介富文本编辑(WYSIWYG(What You See Is What You GET,所见即所得))。最先的富文本编辑,就是在页面中嵌入一个包含空HTML页面的iframe,然后通过设置designMode属性,这个空白的HTML页面就可以编辑了,编辑对象则是该页面<body>元素的HTML代码。 designMode属性有两个可能的值:“off”和“on”,默认为
分享几个前端干货,面试经常提
front_end_fan
09-08 3613
前言 今天,分享几个小知识,算是干货吧!前端面试中也经常会问及,不过问及的几率相对较少。我个人认为,面试中你把基础的知识打好,就可以无敌!哪些基础知识呢?例如:js的继承、js函数等等,万变不离其宗,都是这些的扩展及应用。这些知识理解透彻了,再加一些面试技巧就可以了! 一、怎么让Chrome支持小于12px 的文字? 这个我们在做移动端的时候,设计师图片上的文字假如是10px,我们实现在网页上之后。
js基础-单体内置对象(Global、Math)
front_end_fan
09-21 3449
单体内置对象(Global、Math)内置对象也就是我们不必显示地区实例化,直接就可以使用了,因为它们已经实例化了。1、Global 对象Global对象是一个全局对象。所有在全局作用域中定义的属性和函数,都是Global对象的属性,比如:isNaN()、isFinite()、parseInt()以及parseFloat(),实际上都是Global对象的方法,它还包括了其他一些方法:1.1 Glob
读《JavaScript 标准参考教程(alpha)阮一峰》(上)
front_end_fan
09-12 2796
想要知道下列问题的答案,就去看看这本书吧!1.怎么获取数据类型? typeof xxx xxx instanceof Array Array.isArray(xxx) 2.字符串和数组的api区别? 字符串本质是类数组对象,字符串为只读,只能用length访问长度,[key]来取值,不能修改,不能使用slice(),forEach()...等数组API. 3.原生js
原生js分页效果
front_end_fan
08-10 2669
2017年4月份,我去无锡某软件公司面试,项目经理当时问到一个问题:怎么实现分页效果,说明实现的原理?当时觉得分页是个极其复杂的技术难点,也没回答的很完整。现总结原生js实现分页效果与此,并附上详细注释:总结:分页必须要搞清楚几个参数: 1、一共几条数据 2、每页显示几条数据(x) 3、一共几页 难点:点击第n页时,显示哪几条数据(n-1)*x+1~n*x条数据(n>=1)代码如下:<
JS节点的属性及方法
front_end_fan
09-18 2446
前言学习了jquery等类库,可不能”忘本“,原生js才是它的根基。 ”但是前端技术发展到今天,如果你时常关注Github上一些流行的开源JS项目,你会发现这样一种趋势:开发者们越来越倾向于使用原生代码,而不依赖与第三方库。“一、属性Attributes 存储节点的属性列表(只读)childNodes 存储节点的子节点列表(只读)dataType 返回次节点的数据类型documen
手机网站表层div滑动,导致底层body滑动(touchmove的阻止)
front_end_fan
09-12 2427
案例描述body很长,可以滑动,body头部有一个模拟下拉的选择框。下拉选择有滚动轴,如下图。 我给body一个overflow:hidden和高度是没有用的。手机网站上背景还是可以滑动,然后我给body一个touchmove的preventdefault()阻止事件,body滑动阻止了,PC上面是可以了,但是手机上面滑动div还是会导致底部body的滑动,我给div 一个阻止冒泡的事件stopPr
js基础-表单
front_end_fan
09-21 2197
表单Web表单是开发人员与用户交互的重要控件。1、form1.1 form独有的属性和方法在HTML中,表单是由<form>来表示的,而在JavaScript中,表单对应的是HTMLFormElement类型。HTMLFormElement继承了HTMLElement,因此它跟其他HTML元素具有相同的默认属性。<form>也有自己独有的属性和方法:acceptCharset:服务器能够处理的字符集
读《ECMAScript 6 入门 —— 阮一峰》(上)
front_end_fan
09-18 2054
前言ES6的出现是为了提高 javascript 的严谨性,安全性等方面,它代表着js的发展方向。网站开发的人员,无论前后端都必须熟稔 ES6 语法规范。带着问题看书1. ES6 新增的关键词 let 和 var 区别?a. 使用let声明的变量,只在它所在的代码块内有效。即如果使用let,声明的变量仅在块级作用域内有效。 b. var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为u
读《JavaScript 标准参考教程(alpha)阮一峰》(中)
front_end_fan
09-13 1929
12.js正则表达式有哪些操作方法?正则常用的修饰符?test() exec() 字符串对象的正则: match() search() replace() split() 正则常用的修饰符:g,i,m 13.谈谈下列js正则表达式的区别?贪婪模式和非贪婪模式?捕获组和非捕获组?先行断言和先行否定断言?/^abc/ 匹配以abc开头的字符 /[^abc]/ 表示除了a、b、c之外的所有其他字符。
js基础-File API ★★★
front_end_fan
09-22 1893
File API3、文件系统API3.1 File API在HTML5中新增了File API,可以让网页要求用户选择本地文件,并且读取这些文件的信息。选择的方式可以是HTML<input>元素,也可以是拖拽。<input type="file" id="photo">var selectedFile = document.getElementById('photo'); var file = s
读《ECMAScript 6 入门 —— 阮一峰》(下)
front_end_fan
09-18 1562
编程风格块级作用域字符串解构赋值对象数组函数Map结构Class模块ESLint的使用本章探讨如何将ES6的新语法,运用到编码实践之中,与传统的JavaScript语法结合在一起,写出合理的、易于阅读和维护的代码。多家公司和组织已经公开了它们的风格规范,具体可参阅jscs.info,下面的内容主要参考了Airbnb的JavaScript风格规范。块级作用域 § ⇧(1)let 取代 varES6提出
js-copy-object实现JavaScript对象深度复制克隆合并
标题“js-copy-object:全部或部分复制、克隆和合并 javascript 对象”揭示了一个名为“js-copy-object”的JavaScript库,该库专注于处理对象的复制、克隆和合并操作,使开发者可以更加方便地进行这些任务。...
front_end_fan

博客等级

码龄8年
238
原创
371
点赞
597
收藏
153
粉丝
关注
私信

热门文章

  • js css+html实现简单的日历 33375
  • js监听手机端的touch滑动事件 21524
  • 设置title的样式 18193
  • html5实现贪吃蛇小游戏 17230
  • javascript——touch事件介绍与实例演示 16600

分类专栏

  • ajax
    6篇
  • html5
    17篇
  • CSS3
    16篇
  • javascript
    74篇
  • css
    34篇
  • 纯CSS
    15篇
  • jquery
    35篇
  • vue
    12篇
  • 前端面试题
    4篇
  • 布局
    4篇
  • bootstrap
    6篇
  • 特殊样式
    5篇
  • app
    4篇
  • 日历
    5篇
  • 插件
    13篇
  • 移动端
    13篇
  • 正则表达式
    3篇
  • jquery源码
    14篇
  • 其他
    14篇
  • ES6
    4篇
  • SQL
  • svn
    1篇
  • IOS
    2篇
  • 兼容性
    5篇
  • 分页
  • markdown编辑器
    1篇
  • 图片上传
    1篇
  • 导出
    1篇
  • 导出excel
    1篇
  • 模板引擎
    2篇
  • 计算机基础
  • webpack
    3篇
  • amd/cmd
    1篇
  • promise
    1篇
  • Git
    1篇

展开全部 收起

上一篇:
js基础-JSON
下一篇:
js基础-引用类型-Array对象 ★★★☆

最新评论

  • js基础-富文本编辑器

    SixWeChat: 引用「index」 啥意思?

  • 原生js分页效果

    m0_51704076: 如果一页显示5条怎么改?

  • CSS特殊样式(七)CSS3下的纸张效果实现展示

    不考n2不换头像: 太好看了

  • css段落文字(中英文混杂)实现两端对齐

    清川先生: 英文单词是不允许词内换行的

  • js实现前端数据分页

    啦啦啦1326: 详情怎沫查看

大家在看

  • Qwen-Image Technical Report
  • 解决Excel看花眼、Word公文排版难?这两款实用小工具可以试试! 951
  • VisionThink: Smart and Efficient Vision Language Model via Reinforcement Learning 1
  • 【李宏毅机器学习2025春】笔记——8.模型编辑(Model Editing)
  • 【2025最新】SpringBoot + Vue3摄影约拍服务平台

最新文章

  • vue-cli webpack全局引入jquery、elment-ui
  • 学习webpack
  • 学习git和github
2018年18篇
2017年289篇

目录

展开全部

收起

目录

展开全部

收起

上一篇:
js基础-JSON
下一篇:
js基础-引用类型-Array对象 ★★★☆

分类专栏

  • ajax
    6篇
  • html5
    17篇
  • CSS3
    16篇
  • javascript
    74篇
  • css
    34篇
  • 纯CSS
    15篇
  • jquery
    35篇
  • vue
    12篇
  • 前端面试题
    4篇
  • 布局
    4篇
  • bootstrap
    6篇
  • 特殊样式
    5篇
  • app
    4篇
  • 日历
    5篇
  • 插件
    13篇
  • 移动端
    13篇
  • 正则表达式
    3篇
  • jquery源码
    14篇
  • 其他
    14篇
  • ES6
    4篇
  • SQL
  • svn
    1篇
  • IOS
    2篇
  • 兼容性
    5篇
  • 分页
  • markdown编辑器
    1篇
  • 图片上传
    1篇
  • 导出
    1篇
  • 导出excel
    1篇
  • 模板引擎
    2篇
  • 计算机基础
  • webpack
    3篇
  • amd/cmd
    1篇
  • promise
    1篇
  • Git
    1篇

展开全部 收起

目录

评论
被折叠的  条评论 为什么被折叠? 到【灌水乐园】发言
查看更多评论
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值