01.JavaScript 面向对象精要--原始类型和引用类型
一.什么是类型
JavaScript 虽然没有类的概念。但依然存在两种类型:原始类型和应用类型。
原始类型保存为简单的数据值,引用类型则保存为对象,其本质是指向内存位置
的引用。也就是说:原始值被直接保存在对象内,而引用值则作为一个指针保存在
对象内,该指针指向实际对象在内存中的储存位置。
二.原始类型
2.1 JavaScript中5中原始类型:boolean,number,string,null,undefined
原始类型变量直接保存原始值(而不是一个指针),当你将原始值赋值给一个变量
时,该值将复制到变量中。
var color1 = ''red;
var color2 = color1; //将color1的值复制一份给变量color2
color1 = 'blue';
console.log(color1); //'blue'
console.log(color2); //'red'
2.2 鉴别原始类型
鉴别原始类型的最佳方法使用typeof操作符。
2.3 原始方法
虽然字符串、数字、布尔值是原始类型,但是它们拥有方法(underfined和null没有)
console.log(typeof 'hello'); //'string'
console.log(typeof 10); //'number'
console.log(typeof 5.1); //'number'
console.log(typeof true); //'boolean'
console.log(typeof underfined); //'underfined'
console.log(typeof null); //'object' 判断一个值是否为空,直接和null比较
console.log(null == underfined); //'true';
console.log(null === underfined); //'false';
三.引用类型
3.1 创建对象
var o1 = new Object();
var 02 = create.Object();
var o3 = {};
3.2 对象引用解除
3.3 添加删除属性
3.4 内建对象实例化
1) Array //数组类型,以数字为索引的一组值的有序列表
2) Date //日期和时间类型
3) Error //运行期错误类型
4) Function //函数类型
5) Object //通用对象类型
6) RegExp //正则表达式类型
3.5 对象和数组字面量形式
var o = {
naem : 'hello',
age : 1
};
var arr = [1,2,3];
3.6 函数字面形式
function ref(value){
return value;
};
var ref2 = new Function('value','return value;')
3.7 正则表达式字面形式
var numbers = /\d+/g;
var numbers2 = new RegExp("\\d+","g");
3.8 访问属性
var arr = [];
arr.push(123);
var arr2 = [];
arr2["push"](123);
3.9 鉴别引用类型
函数可以使用typeof而数组和对象则使用instanceof操作符
var arr = [];
var o = {};
function f(){};
console.log(arr instanceof Array) //true
conlole.log(o instanceof Object); //true
console.log(f instanceof Function) //true
3.10 鉴别数组 使用Array.isArray();
var arr = [];
console.log(Array.isArray(arr)); //true
四.原始封装类型
原始封装类型共有3种(Number,String,Boolean)
var name = 'Nicholas';
var temp = new String(name);
temp.last = 'Zakas';
temp = null;
console.log(temp.last) //underfined
临时对象仅在值被读取时创建
01.JavaScript 面向对象精要--原始类型和引用类型的更多相关文章
- ECMAScript5面向对象技术(1)--原始类型和引用类型
概述 大多数开发者在使用Java或C#等基于类的语言的过程中学会了面向对象编程.由于JavaScript没有对类的正式支持,这些开发者在学习JavaScript时往往会迷失方向: JavaScript ...
- Javascript的数据类型(原始类型和引用类型)
1.ECMAScript3中定义了变量可分为原始值和引用值. 原始值:是保存在栈(stack)中的简单数据段:也就是说他们的值是直接存储在变量访问的位置. 引用值:是保存在堆(heap)中的对象,也就 ...
- 《javascript面向对象精要》读书笔记
<javascript面向对象精要> 买这本书的原因主要是因为作者,Nicholas C. Zakas 牛X闪闪的js专家,读过js高程的应该都知道他,而这本书是他的最新力作,感觉也是js ...
- 03.JavaScript 面向对象精要--理解对象
JavaScript 面向对象精要--理解对象 尽管JavaScript里有大量内建引用类型,很可能你还是会频繁的创建自己的对象.JavaScript中的对象是动态的. 一.定义属性 当一个属性第1次 ...
- JavaScript面向对象精要(一)
数据类型 在JavaScript中,数据类型分为两类: 原始类型:保存一些简单数据,如true.5等.JavaScript共同拥有5中原始类型: boolean:布尔.值为true或false num ...
- JavaScript面向对象精要
来自:淡忘~浅思. 链接:http://www.ido321.com/1585.html 和 http://www.ido321.com/1586.html 数据类型 在JavaScript中,数 ...
- javascript面向对象精要第三章对象整理精要
什么是对象的数据属性?什么是对象的访问器属性?[put]方法是默认创建数据属性的,访 问器属性不包含值而是定义了一个单属性被读取时调用的函数(getter)和当一个属性被写入时 调用的函数(sette ...
- 由js apply与call方法想到的js数据类型(原始类型和引用类型)
原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...
- 理解JavaScript原始类型和引用类型
原始类型 我们知道类型(type)定义为值的一个集合,所以每种原始类型定义了它包含的值的范围及其字面量表示形式.一共有5 种原始类型(primitive type),即 Undefined.Null. ...
随机推荐
- 纳尼,java可以在接口中实现非抽象方法了?
纳尼,接口中可以定义实例方法了?! 纳尼,接口中还可以定义静态方法了?! 没错,在Java8中新增了很多新的特性,其中就包括可以在接口中添加方法和变量. 首先我们来看下代码 public interf ...
- htm5l,第一个script代码练习
<body> <canvas id="mycanvas" width="500" height="300"> ...
- Android爬坑之路
做了那么久前端,现在终于可以回到我的老本行, 今天我用了一天的时间配置里Android开发环境,mac和windows双平台,eclipse和IDEA双平台,别问为什么,我就喜欢,中间大坑不断,再加上 ...
- Microsoft.CompactFramework.CSharp.targets not found
今天打开VS2008的智能设备项目,报以下错误,应该是文件找不到了. The imported project "C:\WINDOWS\Microsoft.NET\Framework\v3. ...
- TOAD和PLSQL 默认日期显示、rowid显示、TNSNAME的修改
先说下要解决的问题: select rowid,acct_id,state_date from acct; 修改后,1)sql指明rowid,可以显示出来 2)时间格式显示为YYYYMMDD HH24 ...
- 利用Maven打包时,如何包含更多的资源文件
首先,来看下MAVENx项目标准的目录结构: 一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,ma ...
- git管理测试生产环境代码
利用post-update实现简单钩子 #!/bin/bash cd /www/test || exit #进入指定的目录 unset GIT_DIR #清楚环境变量 git checkout mas ...
- 在centos5开启telnet服务并验证
1.安装telnet服务 [root@localhost ~]# yum install telnet 2.检查是否成功安装 [root@localhost ~]# rpm -qa | grep te ...
- 【转】解决Delphi WebBrowser 无法调用当前浏览器的版本
procedure TregedtIE.FormCreate(Sender: TObject); begin WriteAppNameToReg; WebBrowser1.Navi ...
- nil、Nil、NULL、NSNull的区别
nil:指向一个对象的空指针,对objective c id 对象赋空值. Nil:指向一个类的空指针,表示对类进行赋空值. NULL:指向其他类型(如:基本类型.C类型)的空指针, 用于对非对象指针 ...