Javascript高级编程学习笔记(12)—— 引用类型(1)Object类型
前面的文章中我们知道JS中的值分为两种类型
基础类型的值和引用类型的值
基础类型的值我已经大概介绍了一下,今天开始后面几天我会为大家介绍一下引用类型的值
Object类型
对象是引用类型的值的实例,在ECMA中引用类型是一种数据结构
用于将数据和功能组织到一起,在其它编程语言中通常也被称为类
但是与其他语言中的类不一致,JS中并没有在其他面向对象的编程语言中与类相关的接口
引用类型通常也被称为对象定义,因为其描述的是一类对象所具有的属性和方法
JS为我们提供了许多原始的引用类型
今天就介绍这些原始引用类型中的Object类型
在ES(ECMAScript)6之前我们看到的大多数引用类型的值都是Object的实例
虽然Object类型并不具备多少功能,但是对于在应用程序中存储和传输数据确实是非常理想的选择
创建Ojebct实例方法:
1. 使用new操作符
var person = new Object();
person.age = 21;
person.name = 'lhy';
2.使用对象字面量
var person = {
age:21,
name:'lhy'
}
上面两段代码是等效的
在字面量的声明方式中,左花括号{ 表示对象字面量的开始
因为处于等号的右边,所以 { 处于表达式上下文中
表达式上下文中 { 表示一个表达式的开始,而位于一般的语句上下文中 { 表示代码块的开始
PS. 在早期的浏览器中,最后一个属性后面带逗号会报错
还有一点比较重要的是:字面量的创建方法最好只在需要考虑对象可读性的情况下使用,虽然字面量和new的方法是等效的,但是字面量创建对象时并不会调用Object()构造函数
基于以上描述,字面量由于其代码量少、给人封装数据的感觉,所以是我们给函数传递大量可选参数的首选方式
所以对函数的参数设计时,推荐将必须参数设为命名的变量,使用对象字面量来封装可选参数
访问对象
关于对象的访问有两种方式:
1. ‘.’操作符
2.中括号
从功能上来说两者没有区别,但是方括号可以通过变量来访问属性
所以对于 属性中包含导致语法错误的字符、需要通过变量访问等情形 可以使用方括号之外
其他的情况都不推荐使用中括号来访问对象
Javascript高级编程学习笔记(12)—— 引用类型(1)Object类型的更多相关文章
- Javascript高级编程学习笔记(13)—— 引用类型(2)Array类型
除了Object类型之外ECMA中最常用的引用类型可能就是Array类型了 并且ECMA中的数组类型和其他大多数编程语言的数组类型存在着很大的区别 今天就介绍一下JS中的Array的特别之处 区别 1 ...
- Javascript高级编程学习笔记(3)—— JS中的数据类型(1)
前一段时间由于事情比较多,所以笔记耽搁了一段时间,从这一篇开始我会尽快写完这个系列. 文章中有什么不足之处,还望各位大佬指出. JS中的数据类型 上一篇中我写了有关JS引入的Script标签相关的东西 ...
- Javascript高级编程学习笔记(18)—— 引用类型(7)单体内置对象
什么是内置对象呢? js高级程序设计中给出的定义为:由ES规定不依赖于宿主环境的对象,这些对象在JS执行前就已经存在 前面我们介绍的引用类型都是内置对象 除了这些对象外ECMA还规定了两个单体内置对象 ...
- Javascript高级编程学习笔记(15)—— 引用类型(4)RegExp类型
JS中处理字符串最常用的应该就是正则了 同样正则(RegExp)类型也是JS中引用类型的一种 ECMAScript通过 RegExp类型 来支持正则表达式 创建正则 var expression = ...
- Javascript高级编程学习笔记(17)—— 引用类型(6)基本包装类
基本包装类 基本包装类这个概念或许有的小伙伴没有听说过 但是小伙伴们有没有想过,为什么基本数据类型的实例也有方法呢? 其实这些方法都来自基本包装类型 这是JS为了方便操作基础数据类型而创建的特殊引用类 ...
- Javascript高级编程学习笔记(16)—— 引用类型(5) Function类型
JS中许多有趣的地方都和函数脱不了联系 那么是什么让JS中的函数这么有趣呢? 我们一起来看看吧 Function类型 在JS中函数实际上就是对象,每个函数都是Function类型的实例,和JS的其他引 ...
- Javascript高级编程学习笔记(14)—— 引用类型(3)Date类型
除了前两天介绍的Object.Array类型,Date应该就是JS中最常用的引用类型了 先介绍一下Date类型,该类型使用在Java的 java.until.Date 类的基础上构建的 使用UTC 1 ...
- Javascript高级编程学习笔记(68)—— 事件(12)设备事件
设备事件 随着智能手机与平板电脑的普及,为了更好地让用户与这些设备进行交互 浏览器引入了一种新的方式,而一类新的事件也应运而生,这就是设备事件 W3C从2011年开始制定关于设备事件的草案 下面将会介 ...
- JavaScript高级编程学习笔记(第三章之一)
继续记笔记,JavaScript越来越有意思了. 继续... 第三章:JavaScript基础 ECMAScript语法在很大程度上借鉴了C和其它类似于C的语言,比如Java和Perl. 大小写敏感: ...
随机推荐
- Spring用了哪些设计模式
单例:只产生一个对象,共享对象的资源: 多例:产生多个对象,对象资源没有联系:(action) 在ssm框架中 service层.dao层.controller层都是默认使用单例模式,只会产生唯一 一 ...
- 深度学习原理与框架-Tfrecord数据集的制作 1.tf.train.Examples(数据转换为二进制) 3.tf.image.encode_jpeg(解码图片加码成jpeg) 4.tf.train.Coordinator(构建多线程通道) 5.threading.Thread(建立单线程) 6.tf.python_io.TFR(TFR读入器)
1. 配套使用: tf.train.Examples将数据转换为二进制,提升IO效率和方便管理 对于int类型 : tf.train.Examples(features=tf.train.Featur ...
- VMware虚拟机配置嵌套虚拟化
VMware虚拟机下创建kvm-sever,server下继续创建kvm虚拟机(嵌套虚拟化),返回libvirt错误解决办法:SSH连接VMwarevi /etc/vmware/config增加一行设 ...
- Fiddler响应post的请求 request body
是想传json格式的数据,请求头可以这样写:(应该先勾选 post,然后写上正确滴请求地址) User-Agent: Fiddler Host: localhost:1455 <span sty ...
- mysql 库 表 和 时间查询
-- 查询 worker 库中 表 和 视图 select table_name from information_schema.tables where table_schema='worker' ...
- phpexcel获取excel表格内容
excel表格式: 代码: $objPHPExcel=PHPExcel_IOFactory::load($excelFilePath);//$file_url即Excel文件的路径 $sheet=$o ...
- discuz代码转为html代码
下面附件是来自discuz的一个函数文件(原来是在source/function/function_discuzcode.php位置),已稍微修改: https://files.cnblogs.com ...
- oracle in和exist的区别 not in 和not exist的区别
in 是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询.一般大家都认为exists比in语句的效率要高,这种说法其实是不准确的,这个是要区分环境的. ...
- thinkphp 视图(一)
视图 View <?php namespace app\index\controller; class Index{ public function index(){ return view() ...
- 杨其菊201771010134《面向对象程序设计(java)》第四周学习总结
<面向对象程序设计(java)> 第四周学习总结 第一部分:理论知识 1.类与对象 a.类(class)是构造对象的模板或蓝图.由类构造对象的过程称为创建类的实例: java中类声明的格式 ...