数据类型总结——String(字符串类型)

相关文章

博客原文
数据类型总结——概述
数据类型总结——String(字符串类型)
数据类型总结——Number(数值类型)
数据类型总结——Boolean类型(布尔类型)
数据类型总结——null和undefined
数据类型总结——基本包装类型
数据类型总结——Array(数组类型)

大纲

前言
1、String字符串类型的相关知识
2、字符串的创建
3、字符串的比较
4、转换字符串
5、字符串的基本操作——连接字符串
6、字符串的基本属性和方法

前言

数据类型是每一种语言都需要掌握的内容,掌握每一种数据类型的使用是掌握这门语言必不可少的。而我也对数据类型写了一系列的博客,其中包含了对某一数据类型的概念的认识和理解以及常使用的方法。以下就是我对String类型的一些认识和理解,希望能对读者有所帮助。并且这是关于ES6之前的一篇,之后还会有一篇关于ES6对字符串的新增的知识的总结。

1、String字符串类型的相关知识

1.1、String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。字符串可由单引号或者双引号表示。
1.2、字符串由零个或多个字符构成。字符包括字母、数字、标点符号和空格。字符串必须放在引号里——单引号和双引号都允许使用。
1.3、如果字符串包含双引号字符,就应该把整个字符串放在单引号中;如果字符串包含单引号字符,就应该把整个字符串放在双引号中;如果执意要使用一种引号来包括字符串,那么可以使用转义字符(escaping)来使得字符串中的内容不被解释成这个字符串的结束标志。在JavaScript语言中,对字符进行转义需要用到反斜杠字符。

2、字符串的创建

通常情况下创建一个字符串对象可以通过方法var string1 = "Hello",而不是 var string1 = new String("Hello"),通过直接复制字符串的赋值的方式创建字符串的对象相对于直接new String对象来说要简洁的多,而JavaScript会自动帮助我们将字符串转换成字符串对象。

3、字符串的比较

字符串的比较是将会比较实际的字符串大小是否相等,而字符串对象的比较比较的是两个对象的引用是否相等。

4、转换字符串

要把一个值转换为一个字符串有两种方式:
4.1、就是使用几乎每个值都有的toString()方法,这个返回唯一要做的就是返回相应值的字符串表现。

var num = 10;
console.log(num.toString());             //10
console.log(num.toString(2));            //1010
console.log(num.toString(8));            //12
console.log(num.toString(10));           //10
console.log(num.toString(16));           //a

4.2、在不知道要转换的值是不是null或undefined的情况下,还可以使用转型函数String([value]),这个函数能够将任何类型的值转换为字符串。

String(12);
5、字符串的基本操作——连接字符串

字符串的连接只需要将两个字符串通过“+”连接即可,字符串和数值通过“+”连接起来,那么数值就会自动转换成字符串的数据,从而变成两个字符串连接。

var concatString = "Hello " + "Paul";
6、字符串的基本属性和方法
6.1、length属性

length属性:返回字符串中字符的个数,即字符串的长度

6.2、concat()

str.concat([string1[,string2...]])
concat方法返回字符串值,该值包含了两个或多个提供的字符串的连接。
string1,string2要和所有其他指定的字符串进行连接的String对象或文字。

var str = "ABCDEF"; 
var newStr = str.concat("ABCDEF","ABC"); 
console.log(str);     //ABCDEF
console.log(newStr);  //ABCDEFABCDEFABC
6.3、charAt()

strObj.charAt(index)
charAt方法返回指定索引位置处的字符。如果超出有效范围的索引值返回空字符串。
index想得到的字符的基于零的索引。有效值是0与字符串长度减一之间的值。

var str='abcd';
var a=str.charAt(0);
console.log(a); //'a'
console.log(str); //'abcd'
6.4、charCodeAt()

strObj.charCodeAt(index)
charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码。
index将被处理字符的从零开始计数的编号。有效值为0到字符串长度减1的数字。 如果指定位置没有字符,将返回NaN。

var str = "ABC"; 
str.charCodeAt(0); //65
6.5、slice()

strObj.slice(start[,end])
slice方法返回字符串的片段。
start下标从0开始的strObj指定部分其实索引。如果start为负,将它作为length+start处理,此处length为字符串的长度。
end小标从0开始的strObj指定部分结束索引。如果end为负,将它作为length+end处理,此处length为字符串的长度。

var str = "ABCDEF"; 
str.slice(2,4); //CD
6.6、indexOf()和lastIndexOf()

查找子串在字符串中的位置
用于一个字符串中是否包含某个子串(其它字符串)
传参:
1、需要查找的子串
2、从哪个位置查找(可选)indexOf()的默认值是0,而lastIndexOf()默认是length-1
返回参数:
返回查找到的子串在字符串中的位置,如果没有找到则返回-1

var string1 = "strkiudstrkknstskjustrkui";
var indof = string1.indexOf('str');
var indofNum = string1.indexOf('str',2);
var lasindeof = string1.lastIndexOf('str');
var lasindeofNum = string1.lastIndexOf('str',15);
console.log(indof);//0
console.log(indofNum);//7
console.log(lasindeof);//19
console.log(lasindeofNum);//7 
6.7、substr()

strObj.substr(start[,length])
substr方法返回一个从指定位置开始的指定长度的子字符串。
start所需的子字符串的起始位置。字符串中的第一个字符的索引为0。
length在返回的子字符串中应包括的字符个数。

var str = "ABCDEF"; 
str.substr(2,4);  //CDEF 
6.8、substring()

strObj.substring(start,end)
substring方法返回位于String对象中指定位置的子字符串。
start指明子字符串的起始位置,该索引从0开始起算。
end指明子字符串的结束位置,该索引从0开始起算。
substring方法使用start和end两者中的较小值作为子字符串的起始点。如果start或end为NaN或者为负数,那么将其替换为0。

var str = "ABCDEF"; 
str.substring(2,4); // 或 str.substring(4,2); //CD
6.9、toUpperCase() / toLocaleUpperCase()

toUpperCase方法返回一个字符串,该字符串中的所有字母都被转换为大写字母。

var str = "ABCabc"; 
var newStr = str.toUpperCase(); 
console.log(str);    //ABCabc
console.log(newStr);//ABCABC
6.10、 toLowerCase() / toLocaleLowerCase()

toLowerCase方法返回一个字符串,该字符串中的字母被转换成小写。

var str = "ABCabc"; 
var newStr = str.toLowerCase(); 
console.log(str);    //ABCabc
console.log(newStr);//abcabc
6.11、trim()

trim():删除前置及后缀的所有空格,然后返回副本结果

var str = "  ABCa  bc  "; 
var newStr = str.trim(); 
str = str + "111111";
newStr = newStr + "111111";
console.log(str);        //  ABCa  bc  111111
console.log(newStr);    //ABCa  bc111111
6.12、split()

strObj.split([separator[,limit]])
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
根据某种分割标志符将一个字符串拆分成由子串组成的数组
separator字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
limit该值用来限制返回数组中的元素个数。

var str = "AA BB CC DD EE FF"; 
alert(str.split(" ",3));//结果: AA,BB,CC 
6.13、replace()

replace()方法:将制定的字符串中的子串替换成指定的另一子串,replace()方法将返回一个新的字符串,不会改变原有的字符串。

var myString = "The event will be in May, the 21st of June";
myCleanedUpString = myString.replace("May","June");
console.log(myCleanedUpString);//The event will be inJune, the 21st of June
6.14、search()

strObj.search(reExp)
search()方法:查找指定子串在字符串中的位置
search方法返回与正则表达式查找内容匹配的第一个字符串的位置。
reExp包含正则表达式模式和可用标志的正则表达式对象。

var str = "ABCDECDF"; 
str.search("CD"); // 或 str.search(/CD/i); //结果:2 
6.15、match()

match()方法:返回一个数组,数组中的每一个元素即为根据传入的模式字符串匹配到的子串。

var myString = "1997, 1998, 1999, 2000, 2001, 2002";
myMatchArray = myString.match("2000");
console.log(myMatchArray.length);//1
6.16、String对象其它方法的使用:anchor()、blink()、italics()、link() 、fontcolor()
/*
anchor()   生产锚点
blink()     为元素添加blink标签 
charAt()     返回指定索引位置处的字符。
charCodeAt() 返回一个整数,代表指定位置上字符的 Unicode 编码。
fontcolor()  把带有 COLOR 属性的一个 HTML <FONT> 标记放置在 String 对象中的文本两端
indexOf()    返回 String 对象内第一次出现子字符串的字符位置
italics()    把 HTML <I> 标记放置在 String 对象中的文本两端。 
link()         把一个有 HREF 属性的 HTML 锚点放置在 String 对象中的文本两端。
replace()      返回根据正则表达式进行文字替换后的字符串的复制
split()        切割   
Substr()       截取子串
toUpperCase()  转大写
toLowerCase    转小写
*/
document.write("第五章".anchor("five")+"<br/>");
document.write("第五章".blink()+"<br/>");
document.write("abc".charAt(1)+"<br/>");
document.write("abc".charCodeAt(1)+"<br/>"); //chatCodeAt返回的是索引值对应的字符的码值。 
document.write("第六章".fontcolor("red")+"<br/>"); //fontcolor() 给字符串添加font标签,
                                                  //然后设置color的属性值。
document.write("abchellohehehello".indexOf("hello")+"<br/>"); //返回指定字符串第一次出现的索引值。
document.write("第五章".italics()+"<br/>"); //给文本添加一个i标签,把文本内容设置成斜体。
document.write("传智".link("http://www.itcast.cn")+"<br/>"); // 给文本添加一个a标签,
document.write("明天我们讲xml".replace("xml","DOM编程")+"<br/>"); 

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

推荐阅读更多精彩内容