11.基本包装类型

基本包装类型

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

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

一、基本包装类型概述

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

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

1.字面量写法
var box = ‘Mr.journey‘; //字面量
box.name = ‘journey‘; //无效属性
box.age = function (){ //无效方法
return 100;
};
alert(box); //Mr.journey
alert(box.substring(2)); //.journey,对象.方法(参数),这种写法明显是引用类型的写法
alert(typeof box); //string
alert(box.name); //undefined
alert(box.age); //错误

2.new运算符写法
var box = new String(‘Mr.journey‘);
box.name = ‘journey‘;
box.age = function (){
return 100;
};
alert(box); //Mr.journey
alert(box.substring(2)); //.journey
alert(typeof box); //object
alert(box.name); //journey
alert(box.age); //100

以上字面量声明和new运算符声明很好的展示了它们之间的区别。但有一定还是可以肯定的,那就是不管字面量
形式还是new运算符形式,都可以使用它的内置方法。并且Boolean和Number特性与String相同,三种类型可
以成为基本包装类型。

PS:在使用new运算符创建以上三种类型的对象时,可以给自己添加属性和方法,但我们建议不要这样使用,
因为这样会导致根本分不清到底是基本类型值还是引用类型值。

二、Boolean类型

Boolean类型没有特定的属性和方法。

三、Number类型

Number类型有一些静态属性(直接通过Number调用的属性,而无须new运算符)和方法。

Number静态属性
属性 描述
MAX_VALUE 表示最大值
MIN_VALUE 表示最小值
NaN 非数值
NEGATIVE_INFINITY 负无穷大,溢出返回该值
POSITIVE_INFINITY 无穷大,移除返回该值
prototype 原型,用于增加新属性和方法

var box = 100;
alert(box.MAX_VALUE); //这种写法叫做属性
alert(Number.MAX_VALUE); //这种写法叫做静态属性(类型.属性)

Number对象的方法
方法(参数) 描述
toString() 将数值转化为字符串,并且可以转换进制
toLocaleString() 根据本地数字格式转换为字符串
toFixed() 将数字保留小数点后指定位数并转化为字符串
toExponential() 将数字以指数形式表示,保留小数点后指定位数并转化为字符串
toPrecision() 指数形式或点形式表述数,保留小数点后面指定位数并转化为字符串

var box = 1000.784;
alert(box);
alert(typeof box); //number
alert(typeof box.toString()); //string,toString()把数值转换为字符串
alert(box.toLocaleString()); //本地化
alert(box.toFixed(2)); //小数点保留两位,并转换字符串,四舍五入
alert(box.toExponential()); //以指数形式,转换字符串
alert(box.toPrecision(2)); //根据传参来决定指数或者点数

三、String类型

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

String对象属性
属性 描述
length 返回字符串的字符长度
constructor 返回创建String对象的函数
prototype 通过添加属性和方法扩展字符串定义

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

字符方法
方法 描述
charAt(n) 返回指定索引位置的字符串
charCodeAt(n) 以Unicode编码形式返回指定索引位置的字符

var box = ‘Mr . journey‘; //
alert(box.charAt(1)); //r,返回指定索引下标的值
alert(box.charCodeAt(1)); //114,返回的是acssii码
alert(box[1]); //r,通过数组方式截取

PS:box[1]在IE浏览器会显示undefined,所以使用时要慎重

字符串操作方法
方法 描述
concat(str1.....str2) 将字符串参数串联到调用该方法的字符串
slice(n,m) 返回字符串n到m之间位置的字符串
substring(n,m) 同上
substr(n,m) 返回字符串n开始的m个字符串

var box = ‘Mr. Lee‘;
alert(box.concat(‘is‘ ,‘Teacher‘ , ‘!‘)); //Mr. Lee is Teacher !
alert(box.slice(4)); //Lee
alert(box.slice(4,6)); //Le,从第4位取到第6位
alert(box.substring(4)); //Lee
alert(box.substring(4,6)); //Le,从第4位取到第6位
alert(box.substr(4)); //Lee
alert(box.substr(4,2)); //Le,从第4个开始选两个

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()方法传递负值的情况下存在问题,他会返回原始字符串,使用时要慎重

字符串位置方法
方法 描述
indexOf(str,n) 从第n个搜索的第一个str,并将搜索的索引值返回
lastIndexOf(str,n) 从n开始搜索的最后一个str,并将搜索的索引值返回

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);

大小写转换方法
方法 描述
toLowerCase(str) 将字符串全部抓为小写
toUpperCase(str) 将字符串全部转为大写
toLocaleLowerCase(str) 将字符串全部转为小写,并且本地化
toLocaleUpperCase 将字符串全部转为大写,并且本地化

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

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

字符串的模式匹配方法
方法 描述
match(pattern) 返回pattern中的子串或null
replace(pattern , replacement) 用replacement替换pattern
search(pattern) 返回字符串中pattern开始位置
split(pattern) 返回字符串中按指定pattern拆分的数组

正则表达式在字符串中的应用,在前面的正则表达式章节已经详细探讨过.
以上中match()、replace()、search()、split()在普通字符串中也可以使用。

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

其他方法
方法 描述
fromCharCode(ascii) 静态方法,输出Ascii码对应值
localeCompare(str1 , str2) 比较两个字符串,并返回相应的值

alert(String.fromCharCode(76)); //L,输出Ascii码对应值,放一个ascii码

localeCompare(str1 , str2)方法详解:比较两个字符串并返回以下值中的一个:
1.如果字符串在字母表中应该排在字符串参数之前,则返回一个负数。(多数-1)
2.如果字符串等于字符串参数,则返回0.
3.如果字符串在自附表中应该排在字符串参数之后,则返回一个正数。(多数1)

HTML方法

方法 描述
anchor(name) <a name="name">str</a>
big() <big>str</big>
blink() <blink></blink>
bold() <b>str</b>
fixed() <tt>str</tt>
fontcolor(color) <font color="color">str</font>
fontsize(size) <font size="size">str</font>
link(URL) <a href="URL">str</a>
smail() <smail>str</smail>
strike() <strike>str</strike>
italics() <i>italics</i>
sub() <sub>str<sub>
sup() <sup>str</sup>

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

var box = ‘百度‘;
alert(box.link("http://www.baidu.com")); //超链接

时间: 2024-11-12 08:08:18

11.基本包装类型的相关文章

JavaScript--基本包装类型+Math对象

1. 基本包装类型 1)为了便于操作基本类型值,ECMAScript提供了3个特殊的引用类Boolean, Number, String       每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型对象,从而可以使我们调用一些方法操作这些数据.    var s = "briup";    s.substring(2);       后台会自动完成以下操作:    a.创建String类型的一个实例    b.在实例上调用指定的方法    c.销毁这个实例 2)基本包装

基本包装类型

ECMAScript5还提供了三个特殊的引用类型:Boolean Number String 这些类型与其他的引用类型相似,但是也具有各自的基本类型的特殊行为.每当读取一个基本类型值的时候, 后台就会创建一个对应的基本包装类型的对象 1 var s1 = "some text"; 2 var s2 = s1.substring(2); s1包含一个字符串是一个基本类型值,所以不可能有方法,但是在后台经历了这样三个过程: (1)创建String类型的一个实例 (2)在实例上调用指定的方法

JS复习—基本包装类型(String、Number)、内置对象

   包装类型 在读取模式下访问基本类型值时,就会创建对应的基本包装类型的一个对象,从而方便了数据操作.每个包装类型都映射到同名的基本类型.操作基本类型值得语句一经执行完毕,就会立即销毁新创建的包装对象. 后台执行的操作: (1)创建一个String类型的一个实例: (2) 在实例上调用指定的方法 (3)销毁这个实例 var s1 = "some text"; var s2 = s1.substring(2); s1 = null; 一.Number类型 (1):valueOf() 返

由一个bug引出java包装类型

工作中遇到过一个bug,用两个POJO的 Integer 字段 做 == 判断,明明"数值"相等结果返回 false.检查代码,调试,看源码搞了好久,才知道是Java包装类理解不够惹的祸. 为了弄清楚其中的本质,先上一段代码: 1 int a = 5; 2 Integer b = 5; 3 Integer c = Integer.valueOf(5); 4 Integer d = Integer.valueOf(5); 5 Integer e = new Integer(5); 6 7

第五章 引用类型 基本包装类型

为了便于操作基本类型值,ECMAScript 提供了3 个特殊的引用类型:Boolean.Number 和String.实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据.来看下面的例子. var s1 = "some text"; var s2 = s1.substring(2); 当第二行代码访问s1 时,访问过程处于一种读取模式,也就是要从内存中读取这个字符串的值.而在读取模式中访问字符串时,后台都会自动完成下

JS基本包装类型

一.基本包装类型概述//是基本类型,但是又是特殊的引用类型.var box = 'Mr.Lee'; //基本类型alert(box.substring(2)); //对象.方法(参数),这种写法明显是引用类型的写法 //substring索引从0开始,从第2个位置开始截取到末尾的字符串alert('Mr.Lee'.substring(2)); //这样的写法也是可行的. 字面量写法var box = 'Mr.Lee'; //基本类型box.name = 'Lee'; //给基本类型添加属性box

javascript基本包装类型及其操作方法

1.为了便于操作基本类型值,ECMAScript还提供了3个特殊的因哟用类型:Boolean.Number.Striung. 这些类型与其他引用类型相似,但同时也具有各自的基本类型相应的特殊行为,实际上每当读取一个基本类型值得时候, 后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据. 2.举例示意. <!DOCTYPE html> <html lang="en"> <head> <title></t

JavaScript学习--Item4 基本类型和基本包装类型(引用类型)

1.基本类型和引用类型 基本的数据类型有5个:undefined,boolean,number,string,null typeof null; //"object" typeof undefined; //"undefined" typeof 1; //"number" typeof false //"boolean" typeof "1" //"string" (令人困惑的是,对nu

JavaScript基础——引用类型(四)基本包装类型(Boolean、Number、String)、单体内置对象(Global、Math)

基本包装类型 为了便于操作基本类型值,ECMAScript还提供了3个特殊的引用类型:Boolean.Number和String.这些类型与其它引用类型相似,但同时也具有与各自的基本类型相应的特殊行为.实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据.如: var s1 = "some text"; var s2 = s1.substring(2); 这个例子中的变量s1包含一个字符串,字符串当然是基本类型值.而下