`
chaoyi
  • 浏览: 290399 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

第十三章:基本包装类型

阅读更多

 学习要点:
1.基本包装类型概述
2.Boolean 类型
3.Number 类型
4.String 类型

为了便于操作基本类型值, ECMAScript 提供了 3 个特殊的引用类型: Boolean、 Number和 String。 这些类型与其他引用类型相似, 但同时也具有与各自的基本类型相应的特殊行为。
实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而能够调用一些方法来操作这些数据。
一.基本包装类型概述

var box = 'Mr. Lee'; //定义一个字符串
var box2 = box.substring(2); //截掉字符串前两位
alert(box2); //输出新字符串

 
变量 box 是一个字符串类型,而 box.substring(2)又说明它是一个对象(PS:只有对象才会调用方法),最后把处理结果赋值给 box2。'Mr. Lee'是一个字符串类型的值,按道理它不应该是对象,不应该会有自己的方法,比如:
alert('Mr. Lee'.substring(2)); //直接通过值来调用方法
1.字面量写法:

var box = 'Mr. Lee'; //字面量
box.name = 'Lee'; //无效属性
box.age = function () { //无效方法
return 100;
};
alert(box); //Mr. Lee
alert(box.substring(2)); //. Lee
alert(typeof box); //string
alert(box.name); //undefined
alert(box.age()); //错误

 
2.new 运算符写法:

var box = new String('Mr. Lee'); //new 运算符
box.name = 'Lee'; //有效属性
box.age = function () { //有效方法
return 100;
};
alert(box); //Mr. Lee
alert(box.substring(2)); //. Lee
alert(typeof box); //object
alert(box.name); //Lee
alert(box.age()); //100

 
以上字面量声明和 new 运算符声明很好的展示了他们之间的区别。但有一定还是可以肯定的,那就是不管字面量形式还是 new 运算符形式,都可以使用它的内置方法。并且Boolean 和 Number 特性与 String 相同,三种类型可以成为基本包装类型。
PS:在使用 new 运算符创建以上三种类型的对象时,可以给自己添加属性和方法,但我们建议不要这样使用,因为这样会导致根本分不清到底是基本类型值还是引用类型值。
二.Boolean 类型
Boolean 类型没有特定的属性或者方法。
三.Number 类型
Number 类型有一些静态属性(直接通过 Number 调用的属性,而无须 new 运算符)和方法。

var box = 1000.789;
alert(box.toString()); //转换为字符串,传参可以转换进制
alert(box.toLocaleString()); //本地形式,1,000.789
alert(box.toFixed(2)); //小数点保留,1000.78
alert(box.toExponential()); //指数形式,传参会保留小数点
alert(box.toPrecision(3)); //指数或点形式,传参保留小数点

 

Number 静态属性

 
Number 对象的方法



 


四.String 类型
String 类型包含了三个属性和大量的可用内置方法。
String 对象属性



 
String 也包含对象的通用方法,比如 valueOf()、toLocaleString()和 toString()方法,但这些方法都返回字符串的基本值。
字符方法



 

var box = 'Mr.Lee';
alert(box.charAt(1)); //r
alert(box.charCodeAt(1)); //114
alert(box[1]); //r,通过数组方式截取
PS:box[1]在 IE 浏览器会显示 undefined,所以使用时要慎重。

 
字符串操作方法

 

 

var box = 'Mr.Lee';
alert(box.concat(' is ', ' Teacher ', '!')); //Mr.Lee is Teacher !
alert(box.slice(3)); //Lee
alert(box.slice(3,5)); //Le
alert(box.substring(3)); //Lee
alert(box.substring(3,5)); //Le
alert(box.substr(3)); //Lee
alert(box.substr(3,5)); //Lee
var box = 'Mr.Lee';
alert(box.slice(-3)); //Lee,6+(-3)=3 位开始
alert(box.substring(-3)); //Mr.Lee 负数返回全部
alert(box.substr(-3)); //Lee,6+(-3)=3 位开始
var box = 'Mr.Lee';
alert(box.slice(3, -1)); //Le 6+(-1)=5, (3,5)
alert(box.substring(3, -1)); //Mr. 第二参为负,直接转 0,
//并且方法会把较小的数字提前,(0,3)
alert(box.substr(3, -1)); //'' 第二参数为负,直接转 0 ,(3,0)

 

PS:IE 的 JavaScript 实现在处理向 substr()方法传递负值的情况下存在问题,它会返回原始字符串,使用时要切记。
字符串位置方法

 

 

var box = 'Mr.Lee is Lee';
alert(box.indexOf('L')); //3
alert(box.indexOf('L', 5)); //10
alert(box.lastIndexOf('L')); //10
alert(box.lastIndexOf('L', 5)); //3,从指定的位置向前搜索

 
PS:如果没有找到想要的字符串,则返回-1。
示例:找出全部的 L

var box = 'Mr.Lee is Lee'; //包含两个 L 的字符串
var boxarr = []; //存放 L 位置的数组
var pos = box.indexOf('L'); //先获取第一个 L 的位置
while (pos > -1) { //如果位置大于-1,说明还存在 L
boxarr.push(pos); //添加到数组
pos = box.indexOf('L', pos + 1); //从新赋值 pos 目前的位置
}
alert(boxarr); //输出

 
大小写转换方法

 
 

var box = 'Mr.Lee is Lee';
alert(box.toLowerCase()); //全部小写
alert(box.toUpperCase()); //全部大写
alert(box.toLocaleLowerCase()); //
alert(box.toLocaleUpperCase()); //

 
PS:只有几种语言(如土耳其语)具有地方特有的大小写本地性,一般来说,是否本地化效果都是一致的。
字符串的模式匹配方法

 


正则表达式在字符串中的应用,在前面的章节已经详细探讨过,这里就不再赘述了。
以上中 match()、replace()、serach()、split()在普通字符串中也可以使用。

var box = 'Mr.Lee is Lee';
alert(box.match('L')); //找到 L,返回 L 否则返回 null
alert(box.search('L')); //找到 L 的位置,和 indexOf 类型
alert(box.replace('L', 'Q')); //把 L 替换成 Q
alert(box.split(' ')); //以空格分割成字符串

 
其他方法

 

 

alert(String.fromCharCode(76)); //L,输出 Ascii 码对应值
localeCompare(str1,str2)方法详解:比较两个字符串并返回以下值中的一个;

 
1.如果字符串在字母表中应该排在字符串参数之前,则返回一个负数。(多数-1)
2.如果字符串等于字符串参数,则返回 0。
3.如果字符串在自附表中应该排在字符串参数之后,则返回一个正数。(多数 1)

var box = 'Lee';
alert(box.localeCompare('apple')); //1
alert(box.localeCompare('Lee')); //0
alert(box.localeCompare('zoo')); //-1

 
HTML 方法

 


以上是通过 JS 生成一个 html 标签,根据经验,没什么太大用处,做个了解。

var box = 'Lee'; //
alert(box.link('http://www.yc60.com')); //超链接

 

  • 大小: 30 KB
  • 大小: 37.8 KB
  • 大小: 18.6 KB
  • 大小: 15.8 KB
  • 大小: 18.1 KB
  • 大小: 26.5 KB
  • 大小: 28.4 KB
  • 大小: 16 KB
  • 大小: 53.4 KB
  • 大小: 23.9 KB
分享到:
评论

相关推荐

    第13章 基本包装类型1

    1.基本包装类型概述 2.Boolean 类型 1.字面量写法: 2.new 运算符写法:

    Java开发详解.zip

    031301_【第13章:Java类集】_认识类集、Collection接口笔记.pdf 031302_【第13章:Java类集】_List接口笔记.pdf 031303_【第13章:Java类集】_LinkedList类笔记.pdf 031304_【第13章:Java类集】_Set接口笔记.pdf ...

    Java语言基础下载

    第十三章:网络 213 学习目标 213 TCP/IP协议模型 214 基于Java的网络技术 216 DatagramSocket 219 InetAddress类的使用 221 扩展知识: 227 SocketChannel类 227 内容总结 229 独立实践 230 第十四章:数据结构与...

    python cookbook(第3版)

    第十三章:脚本编程与系统管理 13.1 通过重定向/管道/文件接受输入 13.2 终止程序并给出错误信息 13.3 解析命令行选项 13.4 运行时弹出密码输入提示 13.5 获取终端的大小 13.6 执行外部命令并获取它的输出 ...

    python入门到高级全栈工程师培训 第3期 附课件代码

    第13章共1课 第14章 01 数据类型和变量总结 02 集合定义和基本操作方法 03 集合关系运算交,差,并集 04 集合的其他内置方法 05 集合补充 06 百分号字符串拼接 07 format字符串格式化 08 数学意义的函数与python中...

    疯狂JAVA讲义

    6.1 基本数据类型的包装类 167 6.2 处理对象 170 6.2.1 打印对象和toString方法 170 6.2.2 ==和equals比较运算符 172 6.3 类成员 175 6.3.1 理解类成员 175 6.3.2 单例(Singleton)类 176 6.4 final修饰符 ...

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    第13章 接口 13.1 类和接口继承 13.2 定义接口 13.3 继承接口 13.4 关于调用接口方法的更多探讨 13.5 隐式和显式接口方法实现(幕后发生的事情) 13.6 泛型接口 13.7 泛型和接口约束 13.8 实现多个具有相同...

    Java2核心技术.part5

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 ...1.1 Java程序设计平台 ...1.2 Java“白皮书”的关键术语 ...第3章Java基本的程序设计结构 ...3.3数据类型 ...3.3.3 char类型 ...第13章 注释

    精通DirectX.3D图形与动画程序设计.pdf

    第13章 网格模型高级技术 13.1 .x文件格式分析 13.1.1 首部 13.1.2 网格 13.1.3 网格材质列表 13.1.4 法向量  13.1.5 纹理 13.1.6 框架和变换矩阵 13.1.7 动画 13.1.8 蒙皮信息 13.2 网格模型优化 13.2.1 网格模型...

    编写可维护的javascript(英文)

    第13章 文件和目录结构 13.1 最佳实践 13.2 基本结构 第14章 Ant 14.1 安装 14.2 配置文件 14.3 执行构建 14.4 目标操作的依赖 14.5 属性 14.6 Buildr项目 第15章 校验 15.1 查找文件 15.2 任务 15.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

    第13章 Java集合类  13.1 Set(集)  13.1.1 Set的一般用法  13.1.2 HashSet类  13.1.3 TreeSet类  13.1.4 向Set中加入持久化类的对象  13.2 List(列表)  13.3 Map(映射)  13.4 小结  13.5 思考题 第14...

    编写可维护的JavaScript(中文)

    第13章 文件和目录结构 13.1 最佳实践 13.2 基本结构 第14章 Ant 14.1 安装 14.2 配置文件 14.3 执行构建 14.4 目标操作的依赖 14.5 属性 14.6 Buildr项目 第15章 校验 15.1 查找文件 15.2 任务 15.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    第13章 Java集合类  13.1 Set(集)  13.1.1 Set的一般用法  13.1.2 HashSet类  13.1.3 TreeSet类  13.1.4 向Set中加入持久化类的对象  13.2 List(列表)  13.3 Map(映射)  13.4 小结  13.5 思考题 第14...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

    第13章 Java集合类  13.1 Set(集)  13.1.1 Set的一般用法  13.1.2 HashSet类  13.1.3 TreeSet类  13.1.4 向Set中加入持久化类的对象  13.2 List(列表)  13.3 Map(映射)  13.4 小结  13.5 思考题 第14...

    OpenGL ES 3.0

     第13章概述同步对象和栅栏,它们是在OpenGL ES 3.0主机应用和GPU执行中同步的有效图元。我们讨论同步对象和栅栏的使用方法,并以一个示例作为结束。  第14章——OpenGL ES 3.0高级编程  第14章是核心章节,将...

    Python核心编程(第二版).pdf (压缩包分2部分,第二部分)

     7.1 映射类型:字典   7.1.1 如何创建字典和给字典赋值   7.1.2 如何访问字典中的值   7.1.3 如何更新字典   7.1.4 如何删除字典元素和字典   7.2 映射类型操作符   7.2.1 标准类型操作符   ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

    第13章 Java集合类  13.1 Set(集)  13.1.1 Set的一般用法  13.1.2 HashSet类  13.1.3 TreeSet类  13.1.4 向Set中加入持久化类的对象  13.2 List(列表)  13.3 Map(映射)  13.4 小结  13.5 思考题 第14...

    Python核心编程(第二版).pdf (压缩包分2部分,第一部分)

     7.1 映射类型:字典   7.1.1 如何创建字典和给字典赋值   7.1.2 如何访问字典中的值   7.1.3 如何更新字典   7.1.4 如何删除字典元素和字典   7.2 映射类型操作符   7.2.1 标准类型操作符   ...

    CLR.via.C#.(中文第3版)(自制详细书签)Part1

    第13章 接口 13.1 类和接口继承 13.2 定义接口 13.3 继承接口 13.4 关于调用接口方法的更多探讨 13.5 隐式和显式接口方法实现(幕后发生的事情) 13.6 泛型接口 13.7 泛型和接口约束 13.8 实现多个具有相同...

Global site tag (gtag.js) - Google Analytics