基本引用类型

概论

引用值是某个特定引用类型的实例。引用类型是把数据和功能组合在一起的结构。经常被人称为类。但是在JavaScript中缺少传递面向对象编程语言所具备的某些基本结构,包括类和接口。引用类型有时候也成为对象定义。对象称作为某个特定引用类型的实例。新对象通过使用new操作符跟一个构造函数来创造

Date

Date是JavaScript自带的一个日期类。要创建一个日期类,需要使用new来创建。不给Date传递参数的时候创建的是当前时间的日期。ECMSScript为此还提供两个辅助函数Date.parse()和Date.UTC()
Date类型还重写了toLocaleString()、toString()和valueOf()方法

RegExp

RegExp类型支持正则表达式。正则表达式使用的是Perl的简洁语法来创建。正则表达式可以带零个或者多个flags(标记)用于控制正则表达式的行为

  • g 全局模式
  • i 不区分大小写
  • m 多行模式
  • y 粘附模式
  • u Unicode 模式
  • s dotAll 模式
    RegExp实例的主要方法式exec(),主要用于捕获组使用,这个方法只接收一个参数,即要应用模式的字符串。如果找到匹配项,则返回包含第一个匹配项的数据,如果没有找到,则返回null,虽然返回项是数组,但包含两个额外的属性:index和input.index表示匹配模型的起始位置。input要查找的字符串

原始包装类型

为了方便操作原始值,ECMASCript提供三种特殊的引用类型:Boolean、Number和String。每当用到某个原始值的属性和方法的时候,后台都会相应的包装类型的对象,从而暴露操作原始值的各种方法

let s1 = "a"
let s2 = s1.substring(0)

在这里s1是包含字符串的变量,它是一个原始值,第二行紧接着在s1上调用substring()方法,并把结果保存到s2中。我们知道原始值本身不是对象,因此在逻辑上是不存在方法和属性的,而实际上这个例子又确实按照预期运行了。具体原因是在第二行访问s1的时候,是以读模式访问,也就是从内存访问变量保存的值,在读模式访问字符串的任何时候,后台都会先创建一个String类型的实例,调用实例上的方法和销毁实例。所有原始才能够正常的调用属性或者方法。在此需要注意的是,用new创建的是对象,直接构造函数实例的是转换方法,本质上还是原始值

const value = "25"
const number = Number(value) // number
const number1 = new Number(value) // object

Number的实例对象又toFixed()函数,toFiexd()函数可以将数值转化成带指定小数点的字符串。isInteger()函数可以判断一个数值是不是整数
String可以通知chartAt()取得指定索引的字符,通过fromCharCode函数把指定编码链接成字符串

String的方法

String的方法一般分为字符串操作方法、字符串位置方法、字符串包含方法、trim方法、repeat方法、字符串迭代与解构、字符串模式匹配方法

字符串操作方法

字符串操作首先用到的是concat()方法,用于将一个或者多个字符串拼接成一个新的字符串。ES还提供给3个从字符串提取字符串的方法,分为为slice、substr和substring。这三个方法都返回调用他们的字符串的一个子字符串,而且都接收一个或者两个参数。第一个蚕食表示字符串开始的位置,第二个参数表示字符串结束的位置,对slice和substring而言,第二个参数表示字符串结束的位置,对substr而言,第二个参数表示字符串的长度。如果第二个参数为空,则表示从开始位置一直取到最后。三个方法在参数为负数的时候,表现的就差别很大了,slice()方法将所有的负数都当成字符串长度加上负数值,substr方法将第一个参数为负数的值加上字符串长度,第二个负数转换成0,substring()则是将所有的负参数转化成0

字符串位置方法

有两个方法用于在字符串中定位子字符串:indexOf()和lastIndexOf()。这两个方法从字符串中搜索字符串,并返回位置。两者的区别在于,indexOf()方法从字符串的头部开始查找,lastIndexOf()从字符串尾部查找字符串。这两个字符串都可以接收第二个参数,表示字符串搜索的位置。

字符串包含方法

在ES6增加了3个用于判断字符串是否包含另外一个字符串的方法,startsWith()、endsWith()和includes()这些方法都会从字符串中搜索传入的字符串,并返回一个是否包含的布尔值,startWith()检查开始于索引0的匹配项,endsWith()检查开始于索引(string.length-substring.length)的匹配项,而includes()检查整个字符串
startsWith()和endsWith()方法都接收可选的第二个参数,表示开始搜索的位置。

trim()

trim()表示删除前后的空格。trimLeft()删除前空格trimRight()删除后空格

repeat

repeat()方法接收一个整数参数表示将字符串复制多少次

字符串迭代方法

字符串的原型上暴露了一个@@iterator方法,来表示迭代字符串的每个字符。可以手动使用迭代器

let message = “abc”
for(const c of messgae) {
  
}
const a = [...message]
字符串大小写转换

大小写转换包括4个方法,tolowerCase(),toLocaleLowerCase()、toUpperCase()

字符串模式匹配

match方法和RegExp对象的exec()方法相同。match()方法接收一个参数,可以是一个正则表达式,也可以是一个RegExp对象

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

推荐阅读更多精彩内容