3.6-3.8

  这三章主要介绍了JS的包装对象、不可变的原始值和可变的对象引用、JS中的类型转换。

  包装对象主要指当原始值需要调用一些方法的时候(原始值本身是不能通过"."来调用的方法或者属性值的),JS会隐性的把原始值转换成一个临时的对象,通过这个临时的对象来实现通过原始值调用方法(这个方法是原始值所对应的包装对象的方法),这个临时的对象就成为包装对象。例如,

  先定义一个字符串,并通过.length(),方法来获取字符串的长度:

 var a ="hello";
var b=a.length();   

  a作为一个字符串变量,并不是一个对象,所以他是不能通过"."的形式来调用length()方法的。但是在实际中,我们都是这样运用的。这就是因为这这个过程中JS使用了包装对象。当字符串a通过"."调用属性的时候(方法是一个属性值为函数的属性),JS会通过调用new String(a)来创建一个新的临时的对象,即包装对象,包装对象会继承字符串的所有方法,通过这个包装对象来.length()获取长度,并且返回给变量b,这个过程结束后b被赋值,包装对象会销毁,a并没有发生任何改变。

  包装对象类似于JAVA中的对int的装箱后的Intiger对象。

  除了字符串String(),数字和布尔值也有各自的Number()和Boolean()构造方法来调用。当然,JS除了在运算中会隐式的使用包装对象,也可以通过构造函数来显式的创建包装对象,如:

var a ='hello';
var A= new String(a);

  3.7主要讲述了原始值和对象引用的区别。

  JS中的原始值包括(undefined、null、布尔值、数字和字符串),原始值的值是不可更改。以字符串为例:

var a ='hello';
a.substr(,);
console.log(a);

  当用substr截取a的时候,该语句会返回一个新的字符串而不是返回a,a所代表的字符串“hello”作为一个原始值他的值并没有因为调用了方法改变。

  对象引用实际上是一个引用类型,他的值是可变的。

  比较原始值的时候,我们比较的是他们的值的异同。而比较对象的时候,因为对象都是引用类型,我们比较的实际上是他们基对象(个人理解为内存上的地址),当他们只想同一个基对象的时候,他们才是相等的。

  3.8讲述了JS的类型转换。JS会在需要的时候灵活地进行类型转换。出去字符串意外的其他原始值都支持转换为字符串,除了null和undefined在转换成对象的时候会报错意外的其他原始值都可以通过调用其对用的包装对象来转换成对象。六个假值(null、undefined、0、-0、NaN、"")会转换成布尔值false外,其他的都是真值转换成true。

  当然JS也是支持显示转换的,比如除了null和undefined之外的任何值都支持toString()方法。同时JS提供了更加精确的字符串到数字、数字到字符串的比较转换,比如你可以在字符串转换成数字的时候选择基数,到底是十进制还是十六进制等,也可以选择在字符串转变成数字的时候是转变成整型还是浮点型,

  对象转换成原始值则比较复杂,其中对象转换成字符串的基本步骤如下:

对象转换成数字的与转换成字符串的类型相似,不过转换数字的时候会尝试调用valueOf()方法,具体步骤如下:

  另外在运算的时候,当涉及到操作一个原始值跟一个对象,当使用“+”、“==”、“!=”以及关系运算符(>、<等)时,JavaScript都会调用特殊方法,将对象转换成原始值;特别的,当涉及到日期对象的时候,JavaScript会特殊处理一下,与其他对象有所区别。日期对象的返回值不管是一个数值还是字符串,都会被直接应用,而不会再去转成数字或者字符串去。。出去这些运算符,其他运算符到特定类型的转换都比较明确,也不会特别的处理事件对象。

《JavaScript权威指南》读书笔记2的更多相关文章

  1. <数据挖掘导论>读书笔记11异常检测

    异常检测的目标是发现与大部分其他对象不同的对象.通常,异常对象被称作离群点(Outlier). 异常检测也称偏差检测(Deviation detection),因为异常对象的属性值明显偏离期望的或者常 ...

  2. <数据挖掘导论>读书笔记10聚类分析续

    基于原型的聚类 模糊c均值使用模糊逻辑和模糊集合论的概念,提出一种聚类方案,它很像K均值,但是不需要硬性地将对象分派到一个簇中.模糊c均值算法有时也称为FCM 混合模型聚类采取这样的访谈,簇集合可以用 ...

  3. <数据挖掘导论>读书笔记9聚类分析

    1. 聚类分析仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组. 其目标是组内的对象相互之间是相似的或者相关的,而不同组中的对象是不同的或者不相关的. 2.聚类分析的重要技术 K均值:K均值 ...

  4. <数据挖掘导论>读书笔记8FP树

    1FP树

  5. <数据挖掘导论>读书笔记7 Apriori算法

    Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法.其核心是基于两阶段频集思想的递推算法.该关联规则在分类上属于单维.单层.布尔关联规则.在这里,所有支持度大于最小支持度的项集称为频繁项 ...

  6. <数据挖掘导论>读书笔记4--其他分类技术

    1.基于规则的分类器 2.最近邻分类器 3.贝叶斯分类器 4.人工神经网络 5.支持向量机 6.组合方法 7.不平衡类问题 8.多类问题

  7. <数据挖掘导论>读书笔记6关联分析的高级概念

    处理联系属性: 基于离散化的方法 基于统计学的方法 非离散化方法 处理概念分层 定义在一个特定领域的各种实体或者概念的多层组织.概念分层可以用有向无环图DAG来标示. 序列模式 可选计数方案 COBJ ...

  8. <数据挖掘导论>读书笔记5关联分析的基本概念和算法

    关联规则的强度可以用support度和confidence(置信)度来度量 关联规则发现  给定事务的集合T,关联规则发现是指找出支持度大于等于minsup并且置信度大于等于minconf的所有规则, ...

  9. <数据挖掘导论>读书笔记3--分类

    1.分类的基本概念 分类任务就是通过学习得到一个目标函数f,把每个属性集x映射到一个预先定义的类标号y 目标函数也称为分类模型. 2. 解决分类问题的一般方法: 决策树分类法 基于规则的分类法 神经网 ...

  10. <数据挖掘导论>读书笔记2

    1.频率和众数 frequency(vi)=具有属性值vi的对象数/m 分类属性的众数mode是具有最高频率的值. 2.百分位数 3.位置度量:均值和中位数 4.散布度量:极差和方差 绝对平均偏差 A ...

随机推荐

  1. (原)Ubuntu14中安装GraphicsMagick

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5661439.html 参考网址: http://comments.gmane.org/gmane.co ...

  2. <%@ include file=""%>与<jsp:include page=""/>区别

    jsp页面是把include指令元素(<%@ include file=""%>)所指定的页面的实际内容(也就是代码段)加入到引入它的jsp页面中,合成一个文件后被js ...

  3. linux创建SVN客户端,服务器

    1- linux基本都自带svn 2-创建svn服务器 新创建服务器代码仓库 # svnadmin create serversvn 这样,我们就在~/目录下新建了版本库serverSvn. 3-修改 ...

  4. 话说 MAX_FILE_SIZE

    PHP关于文件上传部分,特别提到表单隐藏域:MAX_FILE_SIZE,意思是接收文件的最大尺寸.文档中给出的例子如下: <form enctype="multipart/form-d ...

  5. dojo Tree 添加、删除节点

    var tree=this.tree; var store=tree.model.store; if(this.node){ console.log(this.node) var children=t ...

  6. 身份证校验程序(上)- 零基础入门学习Delphi48

    身份证校验程序 让编程改变世界 Change the world by program [caption id="attachment_2699" align="alig ...

  7. Linux上使用Azure CLI来管理Azure

    在Windows上我们有强大的Powershell提供各种命令来管理Azure的服务,在Linux上微软提供了基于Node.JS的跨平台的Azure Command Line来帮助Linux用户来管理 ...

  8. NOI十连测 第四测 T2

    思路:线段树套可持久化treap,可持久化treap我还是第一次听说.. 改题的时候没看数据范围..乱开数组T_T #include<algorithm> #include<cstd ...

  9. Linux打开windows 的txt文件,乱码的问题

    实际是两种不同操作系统对中文编码的不一样.转换下就行了 references: http://www.cnblogs.com/no7dw/archive/2013/05/21/3090594.html

  10. vc++ ODBC

    http://book.51cto.com/art/200807/80054.htm http://www.cnblogs.com/xrong/archive/2013/04/14/3020240.h ...