JavaScript的引用类型(五)--基本包装类型

ECMAScript提供了三个特殊的引用类型:Boolean、Number和String。

String类型==> var stringObject = new String("hello world");

Booleab类型==> var booleanObject = new Boolean(true);

Number类型==> var numberObject =  new Number(10);

注!!! 加new 创建的是对象object,不加new创建的是基本类型。

例子:(下述方法三个步骤同样适用于Boolean和Nunber类型对应的布尔值和数字值)

var s1 = "some text";

var s2 = s1.substring(2);  //后台对这行代码自动进行了一系列的处理,从而使其具有对象的方法

后台自动完成的处理:

step1:创建String类型的一个实例  ==>var s1 = new String("some text");

step2:在实力上调用指定的方法  ==>var s2 = s1.substring(2);

step3:销毁这个实例  ==>s1 = null;

注!!!

注:使用new调用基本包装类型的构造函数,与直接调用同名的转型函数是不一样的。

变量number中保存的是基本类型的值25;而变量obj中保存的是number的实例。


这个故事告诉我们:虽然表面输出来的值是“基本变量”25,但其实际却不一定是基本变量number而是引用类型对象object
此处是基本类型number

Boolean类型:(永远不要使用Boolean对象!!!)

这就是不建议用new Boolean()创建对象的的原因
去除new 即正常

Number类型:(仍然不建议直接实例化Number类型,而原因与显示创建Boolean对象一样)

方法:toString()  toFixed()  toExponential()  toPrecision()(这三个方法都可以通过向上或向下舍入,做到以最准确的形式来表示带有正确小数位的值)

==>toString()方法传递一个表示基数的参数,告诉它返回几进制的字符串形式

==>toFixed()按照指定的小数位返回数值的字符串表示

标准现实范围:其可以带0到20个小数位
如果数值本身包含的小数位比指定的还多,那么接近指定的最大小数位的值就会舍入

==>toExponential()返回以指数表示法(也称e表示法)表示的数值的字符串形式。

该方法可以接收一个参数,参数表示指定输出结果中的小数位数

==>toPrecision()是上述二者方法的综合体,即可以根据要处理的数值决定到底是调用toFixed()还是调用toExponential()方法

输出结果如下:
注意!!!上述toPrecision()因为无法准确地表示99,所以将它向上舍入为100

String类型:

属性:length  (用于表示字符串中包含多少个字符)

方法:charAt()  charCodeAt()  concat()  slice()  substr()  subString()  indexOf()  lastIndexOf()  trim()  toLowerCase()  toLocalLowerCase()   toUpperCase()  toLocalUpperCase()  match()  search()  replace()  split()  localCompare()  fromCharCode()

==》字符方法:

==>charAt()以单字符字符串的形式返回给定位置的那个字符

==>charCodeAt()同上一样,但其获取的是该单字符的字符编码

也可以用方括号加数字索引来访问字符串中的特定字符

==》字符串操作方法:

==>concat()用于将一个或多个字符串拼接起来,返回拼接得到的新字符串(其可以接收任意多个参数)

                                                                                                                                             

在实践中,使用更多的还是加好操作符(+)!!!

==>slice()、substr()、subString()三者在大多数情况下的结果都是相同的,但当传递的参数是负值情况下,它们的行为就不尽相同了!!!

参数为正数(左开右闭区间)
参数为负数
当第二个参数是负值,这三个方法的行为就各不相同了

==》字符串位置方法:两个方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置(如果该子字符串不存在,则返回-1),下述二者只是搜索的方向不同

==>indexOf()(方向从左到右)

==>lastIndexOf()(方向从右到做)

一个参数
两个参数
匹配字符串中所有的子字符串

==》trim()方法创建一个字符串副本,删除前置及后缀的所有空格,然后返回结果。

这个方法大有用处!!!

==》字符串大小写转换方法

==>toLowerCase() 

==>toLocalLowerCase()

==>toUpperCase() 

==>toLocalUpperCase()  

一般来说,在不知道自己的代码将在哪种语言环境中运行的情况下,还是使用针对地区的方法更稳妥一些

==》字符串的模式匹配方法:

==>match()  在字符串上调用这个方法,本质上与调用RegExp的exec()方法相同。(其只接受一个参数:要么是一个正则表达式,要么是一个RegExp对象)

==>search()  与match()方法的参数相同,其返回的是字符串中第一个匹配项的索引

'at'在字符串中第一次出现的位置是1

==>replace()  

这个方法接两个参数:第一个参数可以是一个RegExp对象或者一个字符串(这个字符串不会被转换成正则表达式),第二个参数可以是一个字符串或者一个函数

如果第一个参数是字符串,那么只会替换第一个子字符串。要想替换所有子字符串,唯一的方法就是提供一个正则表达式,而且要指定全局(g)标志

如果第二个参数是一个函数:在只有一个匹配项(即与模式匹配的字符串》的情况下,会向这个函数传递3个参数:模式的匹配项模式匹配项在字符串中的位置原始字符串

==>split() 这个方法可以给予指定的分隔符将一个字符串分割成多个子字符串,并将结果放在一个数组中。分隔符可以是字符串,也可以是一个RegExp对象(这个方法不会将字符串看成正则表达式)

接受可选的第二个参数,与指定数组的大小,以便确保返回的数组不会超过既定大小
什么鬼???

==》localCompare() 方法用于比较两个字符串谁在字母表中的先后顺序

==》fromCharCode()方法接收一或多个字符编码,然后将它们转换成一个字符串。(相当于charCodeAt()方法的相反操作)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,100评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,862评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,993评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,309评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,303评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,421评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,830评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,501评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,689评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,506评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,564评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,286评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,826评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,875评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,114评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,705评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,269评论 2 341

推荐阅读更多精彩内容