一.什么是类型
 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 面向对象精要--原始类型和引用类型的更多相关文章

  1. ECMAScript5面向对象技术(1)--原始类型和引用类型

    概述 大多数开发者在使用Java或C#等基于类的语言的过程中学会了面向对象编程.由于JavaScript没有对类的正式支持,这些开发者在学习JavaScript时往往会迷失方向: JavaScript ...

  2. Javascript的数据类型(原始类型和引用类型)

    1.ECMAScript3中定义了变量可分为原始值和引用值. 原始值:是保存在栈(stack)中的简单数据段:也就是说他们的值是直接存储在变量访问的位置. 引用值:是保存在堆(heap)中的对象,也就 ...

  3. 《javascript面向对象精要》读书笔记

    <javascript面向对象精要> 买这本书的原因主要是因为作者,Nicholas C. Zakas 牛X闪闪的js专家,读过js高程的应该都知道他,而这本书是他的最新力作,感觉也是js ...

  4. 03.JavaScript 面向对象精要--理解对象

    JavaScript 面向对象精要--理解对象 尽管JavaScript里有大量内建引用类型,很可能你还是会频繁的创建自己的对象.JavaScript中的对象是动态的. 一.定义属性 当一个属性第1次 ...

  5. JavaScript面向对象精要(一)

    数据类型 在JavaScript中,数据类型分为两类: 原始类型:保存一些简单数据,如true.5等.JavaScript共同拥有5中原始类型: boolean:布尔.值为true或false num ...

  6. JavaScript面向对象精要

    来自:淡忘~浅思. 链接:http://www.ido321.com/1585.html 和 http://www.ido321.com/1586.html 数据类型   在JavaScript中,数 ...

  7. javascript面向对象精要第三章对象整理精要

    什么是对象的数据属性?什么是对象的访问器属性?[put]方法是默认创建数据属性的,访 问器属性不包含值而是定义了一个单属性被读取时调用的函数(getter)和当一个属性被写入时 调用的函数(sette ...

  8. 由js apply与call方法想到的js数据类型(原始类型和引用类型)

    原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...

  9. 理解JavaScript原始类型和引用类型

    原始类型 我们知道类型(type)定义为值的一个集合,所以每种原始类型定义了它包含的值的范围及其字面量表示形式.一共有5 种原始类型(primitive type),即 Undefined.Null. ...

随机推荐

  1. win7,安装node失败

    win7下,下载node安装包,安装之后 打开命令行输入 node -v,仍然提示命令不可用. 解决办法: 找到环境变量: 在用户变量里修改 path: 添加系统变量 NODE_PATH: 关机重启电 ...

  2. CentOS6配置国内yum源

    在安装完CentOS后为了加快安装.更新rpm包的速度.需要将yum源改为国内源,国内比较快的源有中科大.163.sohu源.下面修改为163源为例子: 首先进入源的配置目录:执行 cd /etc/y ...

  3. 1002 Phone Numbers 解题报告

    1002. Phone Numbers Time limit: 2.0 secondMemory limit: 64 MB In the present world you frequently me ...

  4. SVN Client

    https://ctf.open.collab.net/svn/repos/ankhsvn/trunk/src/ https://ctf.open.collab.net/svn/repos/sharp ...

  5. python 查找指定内容的txt文件

    程序设计思路:1. 利用os.walk()找出所有的文件;2.利用正则找到指定后缀的文件:3.找到需要的txt文件后,通过open().readlines()读取文件中每行数据;4.读取后,保存正则匹 ...

  6. backbone实例01

    backbonejs往简单说,就是一前端MVC框架,适合用于单页面.复杂的前端逻辑. 直接上代码,里面都有相关注释,重点是理解清楚view.collection.model这三者如何关联调用. < ...

  7. 关于mysql的几个必知点

    实际运用中遇到的才了解到的 导出sql文件时navicat导出的sql文件形式是一条记录一个insert语句,所以文件会比较大点,后续插入也会比较慢,而用mysqldump命令导出的sql文件会合并插 ...

  8. if语句的一个小技巧

    也就是说选中类型的时候边框属性的选择项是不能选择的一般用if else 在类型的CHANGE方法中,现在一句话就能搞定看代码 private void m_rdbtnProID2_CheckedCha ...

  9. MVC系列2-Model

    上一篇我讲了ASP.MET MVC的基础概念,我相信从上一篇,我们可以知道MVC的执行过程.这一篇我们开始讲解Model.我们知道,在我们的应用程序中,大多时候是在遵循业务逻辑通过UI操作数据.所以这 ...

  10. Error:Failed to create directory 'C:\Users\Administrator\.gradle\caches\2.8\scripts\ijinit7_5jx13p26

    在导入别人库的时候同步工程时出现此错误. 解决方式:File-->>Invalidate Caches/Restart,弹出一个框,点击Invalidate and Restart按钮,等 ...