相关文章

  简书原文:https://www.jianshu.com/p/546a755c3eb6

  数据类型总结——概述:https://www.cnblogs.com/shcrk/p/9266015.html

  数据类型总结——String(字符串类型):https://www.cnblogs.com/shcrk/p/9277107.html

  数据类型总结——Number(数值类型):https://www.cnblogs.com/shcrk/p/9277040.html

  数据类型总结——Boolean类型(布尔类型):https://www.cnblogs.com/shcrk/p/9265597.html

  数据类型总结——null和undefined:https://www.cnblogs.com/shcrk/p/9266100.html

  数据类型总结——基本包装类型:https://www.cnblogs.com/shcrk/p/9266066.html

  数据类型总结——Array(数组类型):https://www.cnblogs.com/shcrk/p/9276989.html

大纲

  前言
  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/>"); //转小写

  

数据类型总结——String(字符串类型)的更多相关文章

  1. redis:string字符串类型的操作

    1. string字符串类型的操作: 1.1. set 设置单个值 语法:set key value [EX seconds] [PX milliseconds] [NX|XX] 注: EX seco ...

  2. JavaScript数据类型 String字符串类型

    前言 javascript没有表示单个字符的字符型,只有字符串String类型,字符型相当于仅包含一个字符的字符串 字符串String是javascript基本数据类型,同时javascript也支持 ...

  3. JavaScript数据类型 String字符串类型的属性和方法

    属性 字符串String类型的每个实例都有一个length属性,表示字符串中的字符个数.由于字符串是不可变的,所以字符串的长度也不可变 字符串的length属性不会在for/in循环中枚举,也不能通过 ...

  4. 如何将int整型转换成String字符串类型

    自动类型转换适用于兼容类型之间从小范围到大范围数据的转换. nt转换成String int i = 10; int b=1: System.out.pritnln(a + b); 里面靠近字符串,所以 ...

  5. js将某个值转换为String字符串类型或转换为Number数字类型

    将某个值转换为String类型 1. value.toString() toString()方法返回一个表示该对象的字符串 var a = 123 a.toString() // '123' 2. & ...

  6. 4.String字符串类型操作

    String类型操作 1.set key value 设置key对应的值为string类型的value  2.mset key1 value1 … keyN valueN 一次设置多个key的值 3. ...

  7. js最实用string(字符串)类型的使用及截取与拼接详解

    var a = '世界上最远的距离不是天涯海角'; 一.通过字符获取位置或通过位置获取字符: //指定位置返回字符console.log(str.charAt(1));console.log(str[ ...

  8. 2、Python 基础类型 -- String 字符串类型

    字符串常用的方法: 1.分割:string.split(str="", num=string.count(str))   以 str 为分隔符切片 string,如果 num 有指 ...

  9. string字符串类型

    一次设置一个key-value 使用set命令可以一次设置一个key-value,使用get命令可以查询key所关联的字符串值.如下图所示. 一次设置多个key-value 使用mset命令可以设置多 ...

随机推荐

  1. GetInvocationList 委托链表

    最近发现C#程序初始化时在构造函数中,偶尔出现事件注册不成功.后查资料发现有GetInvocationList 这么一个获取类中的委托链表的函数, 使用方法如下: 1.在需委托的类(Class1)中增 ...

  2. 抓包神器Fiddler之Https请求随心转

    随着AppleStore对APP的审核越来越严格,客户端请求服务端API的方式大多数都变更为了https,在更安全的同时又引起了另外一个问题——本地抓包开发调试的不便. 一般来说,我们在开发API的时 ...

  3. 项目报错:Cannot find class file for javax/servlet/ServletException

    两种解决方法: 1. 假设是Maven项目,加入servlet-api依赖包: <dependency> <groupId>javax.servlet</groupId& ...

  4. struts2中action手动获取參数

    struts2中action手动获取Session,jsp页面參数 1. ActionContext 在Struts2开发中,除了将请求參数自己主动设置到Action的字段中,我们往往也须要在Acti ...

  5. 停止使用域名 boypay.net

    停止使用域名 boypay.net boypay.net 这个域名当时注册的时候打算开发网店--" 情侣商城",表面意思是 "男生支付",情侣和婚姻是人生中必须 ...

  6. Android控件开发之Gallery3D效果

    package xiaosi.GalleryFlow; import android.app.Activity; import android.os.Bundle; public class Gall ...

  7. 15.Node.js REPL(交互式解释器)

    转自:http://www.runoob.com/nodejs/nodejs-tutorial.html Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电 ...

  8. 团队作业-Beta冲刺(2)

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 这个作业要求在哪里 https://edu.cnblo ...

  9. IIS特殊字符设置

    简介:[iis7]请求筛选模块被配置为拒绝包含双重转义序列的请求.HTTP 错误 404.11 - Not Found 特殊字符最好替换成其他的字符,主要的特殊字符有”*”.”&”.”%”.” ...

  10. Flask设置配置文件

    Flask修改配置: from flask import Flask app = Flask(__name__) app.config['DEBUG'] = True @app.route('/') ...