2017年11月12日--1(ES的数据类型-应用数据)

ES标准

1引用类型

Boolean 对象是 Boolean 原始类型的引用类型。

要创建 Boolean 对象,只需要传递 Boolean 值作为参数:
var oBooleanObject = new Boolean(true);

var oFalseObject = new Boolean(false);
var bResult = oFalseObject && true; //输出 true

Number 对象
正如你可能想到的,Number 对象是 Number 原始类型的引用类型。要创建 Number 对象,采用下列代码:
var oNumberObject = new Number(68);

要得到数字对象的 Number 原始值,只需要使用 valueOf() 方法:
var iNumber = oNumberObject.valueOf();

当然,Number 类也有 toString() 方法,

toFixed() 方法
toFixed() 方法返回的是具有指定位数小数的数字的字符串表示。例如:
var oNumberObject = new Number(68);
alert(oNumberObject.toFixed(2)); //输出 "68.00"

toFixed() 方法
toFixed() 方法返回的是具有指定位数小数的数字的字符串表示。例如:
var oNumberObject = new Number(68);
alert(oNumberObject.toFixed(2)); //输出 "68.00"

toPrecision() 方法
toPrecision() 方法根据最有意义的形式来返回数字的预定形式或指数形式。它有一个参数,即用于表示数的数字总数(不包括指数)。例如,
var oNumberObject = new Number(68);
alert(oNumberObject.toPrecision(1)); //输出 "7e+1"
这段代码的任务是用一位数字表示数字 68,结果为 "7e+1",以另外的形式表示即 70。的确,toPrecision() 方法会对数进行舍入。不过,如果用 2 位数字表示 68,就容易多了:
var oNumberObject = new Number(68);
alert(oNumberObject.toPrecision(2)); //输出 "68"
当然,输出的是 "68",因为这正是该数的准确表示。不过,如果指定的位数多于需要的位数又如何呢?
var oNumberObject = new Number(68);
alert(oNumberObject.toPrecision(3)); //输出 "68.0"
在这种情况下,toPrecision(3) 等价于 toFixed(1),输出的是 "68.0"。
toFixed()、toExponential() 和 toPrecision() 方法都会进行舍入操作,以便用正确的小数位数正确地表示一个数。

precision精密度

String 对象
String 对象是 String 原始类型的对象表示法,它是以下方式创建的:
var oStringObject = new String("hello world");
String 对象的 valueOf() 方法和 toString() 方法都会返回 String 类型的原始值:
alert(oStringObject.valueOf() == oStringObject.toString()); //输出 "true"

length 属性
charAt() 和 charCodeAt() 方法
charAt() 方法返回的是包含指定位置处的字符的字符串:

charCodeAt()如果想得到的不是字符,而是字符代码,那么可以调用 charCodeAt() 方法:
var oStringObject = new String("hello world");
alert(oStringObject.charCodeAt(1)); //输出 "101"
这个例子输出 "101",即小写字母 "e" 的字符代码。

concat() 方法

接下来是 concat() 方法,用于把一个或多个字符串连接到 String 对象的原始值上。该方法返回的是 String 原始值,保持原始的 String 对象不变:
var oStringObject = new String("hello ");
var sResult = oStringObject.concat("world");
alert(sResult); //输出 "hello world"
alert(oStringObject); //输出 "hello "

在上面这段代码中,调用 concat() 方法返回的是 "hello world",而 String 对象存放的仍然是 "hello "。出于这种原因,较常见的是用加号(+)连接字符串,
因为这种形式从逻辑上表明了真正的行为:因为这种形式从逻辑上表明了真正的行为:因为这种形式从逻辑上表明了真正的行为:
var oStringObject = new String("hello ");
var sResult = oStringObject + "world";
alert(sResult); //输出 "hello world"
alert(oStringObject); //输出 "hello "

indexOf() 和 lastIndexOf() 方法:

indexOf() 和 lastIndexOf() 方法返回的都是指定的子串在另一个字符串中的位置,如果没有找不到子串,则返回 -1。
这两个方法的不同之处在于,indexOf() 方法是从字符串的开头(位置 0)开始检索字符串,而 lastIndexOf() 方法则是从字符串的结尾开始检索子串。例如:
var oStringObject = new String("hello world!");
alert(oStringObject.indexOf("o")); 输出 "4"
alert(oStringObject.lastIndexOf("o")); 输出 "7"

localeCompare() 方法
下一个方法是 localeCompare(),对字符串进行排序。该方法有一个参数 - 要进行比较的字符串,返回的是下列三个值之一:
如果 String 对象按照字母顺序排在参数中的字符串之前,返回负数。
如果 String 对象等于参数中的字符串,返回 0
如果 String 对象按照字母顺序排在参数中的字符串之后,返回正数。
注释:如果返回负数,那么最常见的是 -1,不过真正返回的是由实现决定的。如果返回正数,那么同样的,最常见的是 1,不过真正返回的是由实现决定的。
示例如下:
var oStringObject = new String("yellow");
alert(oStringObject.localeCompare("brick")); //输出 "1"
alert(oStringObject.localeCompare("yellow")); //输出 "0"
alert(oStringObject.localeCompare("zoo")); //输出 "-1"

slice() 和 substring()
ECMAScript 提供了两种方法从子串创建字符串值,即 slice() 和 substring()。这两种方法返回的都是要处理的字符串的子串,都接受一个或两个参数。
第一个参数是要获取的子串的起始位置,
\第二个参数(如果使用的话)是要获取子串终止前的位置(也就是说,获取终止位置处的字符不包括在返回的值内)。如果省略第二个参数,终止位就默认为字符串的长度。
与 concat() 方法一样,slice() 和 substring() 方法都不改变 String 对象自身的值。它们只返回原始的 String 值,保持 String 对象不变。
var oStringObject = new String("hello world");
alert(oStringObject.slice("3")); //输出 "lo world"
alert(oStringObject.substring("3")); //输出 "lo world"
alert(oStringObject.slice("3", "7")); //输出 "lo w"
alert(oStringObject.substring("3", "7")); //输出 "lo w"

为什么有两个功能完全相同的方法呢?事实上,这两个方法并不完全相同,不过只在参数为负数时,它们处理参数的方式才稍有不同。
对于负数参数,slice() 方法会用字符串的长度加上参数,substring() 方法则将其作为 0 处理(也就是说将忽略它)。例如:
var oStringObject = new String("hello world");
alert(oStringObject.slice("-3")); //输出 "rld"
alert(oStringObject.substring("-3")); //输出 "hello world"
alert(oStringObject.slice("3, -4")); //输出 "lo w"
alert(oStringObject.substring("3, -4")); //输出 "hel"

当只有参数 -3 时,slice() 返回 "rld",substring() 则返回 "hello world"。这是因为对于字符串 "hello world",
slice("-3") 将被转换成 slice("8"),而 substring("-3") 将被转换成 substring("0")。
同样,使用参数 3 和 -4 时,差别也很明显。slice() 将被转换成 slice(3, 7),与前面的例子相同,返回 "lo w"。而 substring() 方法则将两个参数解释为 substring(3, 0),实际上即 substring(0, 3),
因为 substring() 总把较小的数字作为起始位,较大的数字作为终止位。因此,substring("3, -4") 返回的是 "hel"。
这里的最后一行代码用来说明如何使用这些方法。

最后一套要讨论的方法涉及大小写转换。有 4 种方法用于执行大小写转换,即
toLowerCase()
toLocaleLowerCase()
toUpperCase()
toLocaleUpperCase()

这段代码中,toUpperCase() 和 toLocaleUpperCase() 输出的都是 "HELLO WORLD",toLowerCase() 和 toLocaleLowerCase() 输出的都是 "hello world"。一般来说,如果不知道在以哪种编码运行一种语言,则使用区域特定的方法比较安全。
提示:记住,String 对象的所有属性和方法都可应用于 String 原始值上,因为它们是伪对象。

instanceof 运算符
在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 "object"。ECMAScript 引入了另一个 Java 运算符 instanceof 来解决这个问题。
instanceof 运算符与 typeof 运算符相似,用于识别正在处理的对象的类型。与 typeof 方法不同的是,instanceof 方法要求开发者明确地确认对象为某特定类型。例如:
var oStringObject = new String("hello world");
alert(oStringObject instanceof String); //输出 "true"
这段代码问的是“变量 oStringObject 是否为 String 对象的实例?”oStringObject 的确是 String 对象的实例,因此结果是 "true"。尽管不像 typeof 方法那样灵活,但是在 typeof 方法返回 "object" 的情况下,instanceof 方法还是很有用的。

时间: 2024-10-11 00:36:16

2017年11月12日--1(ES的数据类型-应用数据)的相关文章

20141112,微软11月12日发布14个安全补丁

大家好,我们是微软大中华区安全支持团队. 微软于北京时间2014年11月12日发布了14个新的安全公告,其中4个为严重等级,8个为重要等级,共修复Microsoft Windows. Internet Explorer (IE). Office. .NET Framework, Internet Information Services (IIS).Remote Desktop Protocol (RDP). Active Directory Federation Services (ADFS)

2014年至今的博文目录(更新至2017年06月12日)

拓扑学中凝聚点的几个等价定义(2017-06-12 07:51) 江苏省2017年高等数学竞赛本二试题(含解答)(2017-06-10 20:59) 裴礼文数学分析中的典型问题与方法第4章一元函数积分学练习(2017-06-10 11:04) 2017年厦门大学第十四届景润杯数学竞赛试卷(数学类)评分标准(2017-06-05 15:31) 2017年华东师范大学数学竞赛(数学类)试题(2017-06-05 15:28) 裴礼文数学分析中的典型问题与方法第3章一元微分学练习(2017-05-30

2015年11月12日Git学习

环境:win10 已安装git工具(如未配置环境变量需先配置环境变量) 如何配置环境变量:1.我的电脑-属性-高级系统设置-环境变量-系统变量 找到path然后在变量值结尾增加路径: ;C:\Program Files (x86)\Git\bin git安装路径一定要看好! win+r打开命令窗口输入:sh --login -i 打开git 1.创建Git库到指定目录 git mkdir 目录 创建指定目录 cd 目录 进入目录 pwd 展示目录 2.创建可管理仓库 git init 将当前路径

2017年11月3日 VS三大类&数组&VS&集合&泛型集合

三大类 共分为两个大类: 基本数据型&引用类型 基本数据型---值类型---整型---常用的整型: Int , 长整型:  Long, 小整型: byle, 中整型 short --浮点型 -- 小浮点: float , 中浮点: double 大浮点: declaml --布尔型 -- bool(对错类型) -- ture||false --字符型 -- char(单一字符) 引用类型 -- 字符串 -- string -- 时间日期 -- DateTime 数组 // 必须规定类型,必须规定

2017年11月1日刷题记录 | 普及组

写在前面 哇Cys好菜啊! 哇Cys连普及组都不会打了啊! 哇要Noip了好紧脏啊! 哇Cys要开始刷题了 然后重点是Cys好菜菜菜菜菜菜啊!!!! 以下题目来自题库比赛 Task-1  A-B 题目描述 出题是一件痛苦的事情! 题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的A+B Problem,改用A-B了哈哈! 好吧,题目是这样的:给出一串数以及一个数字C,要求计算出所有A-B=C的数对的个数.(不同位置的数字一样的数对算不同的数对) 输入输出格式 输入格式: 第一行包括2个非负整数N和

2017年4月12日

补齐昨天的随笔 说是要加一个查询方法,这次写就快了许多.先把页面写好.bootstrap 栅格系统 找到12-3 找到剩余的空白处加一个输入框,百度一个简单的js,两个输入框不能都有值. control没有改,输入参数的模型多加了一个key . 存在key 按找key查找.存在time 按time找 列表表格 就还是用原来的表格,按Key查找 new 一个对象传过来 不存在的键值对 返回"--" 不然会觉得很难看懂. 每个项目都配置了数据库连接,发现其他项目里面的连接不一样,这才恍然大

2017年9月12日

框架 必须去掉<body></body> <frameset rows="">上下分 <frameset cols+"">左右分 <frameborder="no">去掉下划线 CSS样式表 /*id选择器*/ #div1{ width: 100px; height: 100px; background-color: blue; } /*class选择器*/ .div2{ width:

老男孩教育每日一题-2017年5月12日-磁盘知识点:linux系统中LVM配置实现方法?

1.题目 2.参考答案 01:将一个或多个物理分区创建为一个PV # pvcreate /dev/sdb{1,2} Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdb2" successfully created # pvs          #<- 查看系统中的PV信息 PV                 VG   Fmt      Attr     PSiz

2017年2月12日 WER学习总结

今天中午,我们梦寐以求的WER场地和机器人器材终于到了,我与cby开始了器材的熟悉工作,经过一个下午的熟悉,我总结得到了场地搭建注意事项. 附件: 搭建注意事项 器材应先分类整理好,以免找的时候手忙脚乱 初次搭建时应按照指南按步骤有序搭建,可以根据指南先将装置拆分 应该在搭建过程中了解,熟记器材的名字 两个立方体块(红色立方体块)的拆分可以用70梁作撬棒(杠杆原理) 两倍三倍插销从孔立拔出的方法可以用80轴顶出来 插销与梁连接的时候应注意梁是否可以旋转(方口固定,圆口可转) 红色立方体块拆的时候