一、定义一个字符串变量的几种方式与区别
1、
var str = 'segmentfault';
console.log((typeof str),(str instanceof Object),(str instanceof String))
output: string false false
2、
var str = String('segmentfault');
console.log((typeof str),(str instanceof Object),(str instanceof String))
output: string false false
3、
var str = new String('segmentfault');
console.log((typeof str),(str instanceof Object),(str instanceof String))
output: object true true
说明:
首先有一点,在js中,数据类型分为两类:原始类型(primitive type)和对象类型(object type)。
那么我们来看第一种方法
var str = 'segmentfault';
创建的便是原始类型string,所以他的类型是string。而第三种方法
var str = new String('segmentfault');
则是使用了构造函数来创建了一个叫做String的对象类型,所以它的类型是对象,也就是Object。再来看第二种方法
var str = String('segmentfault');
这则是因为js里有一个函数就叫做String(),作用是把对象的值转换为字符串,所以就会有以上结果。
二、String 对象的属性
属性 | 描述 |
---|---|
constructor | 对创建该对象的函数的引用 |
length | 字符串的长度 |
prototype | 允许您向对象添加属性和方法 |
1、constructor属性
<script type="text/javascript">
var str = new String('segmentfault');
console.log(str.constructor);
</script>
output:String
2、length属性
<script type="text/javascript">
var str = 'segmentfault';
console.log(str.length);
</script>
output:12
3、prototype属性
<script type="text/javascript">
//定义一个字符对象
var s1=new String("abcde");
String.prototype.alert=function(){
alert("ok!");
};
//定义另一个字符对象
var s2=String("abcde");
s2.alert();
//定义另一个普通的字符对象
var s3="abcde";
s3.alert();
</script>
三、String 对象的方法
属性 | 描述 |
---|---|
anchor() | 创建 HTML 锚。 |
big() | 用大号字体显示字符串。 |
blink() | 显示闪动字符串。 |
bold() | 使用粗体显示字符串。 |
charAt() | 返回在指定位置的字符。 |
charCodeAt() | 返回在指定的位置的字符的 Unicode 编码。 |
concat() | 连接字符串。 |
fixed() | 以打字机文本显示字符串。 |
fontcolor() | 使用指定的颜色来显示字符串。 |
fontsize() | 使用指定的尺寸来显示字符串。 |
fromCharCode() | 从字符编码创建一个字符串。 |
indexOf() | 检索字符串。 |
italics() | 使用斜体显示字符串。 |
lastIndexOf() | 从后向前搜索字符串。 |
link() | 将字符串显示为链接。 |
localeCompare() | 用本地特定的顺序来比较两个字符串。 |
match() | 找到一个或多个正则表达式的匹配。 |
replace() | 替换与正则表达式匹配的子串。 |
search() | 检索与正则表达式相匹配的值。 |
slice() | 提取字符串的片断,并在新的字符串中返回被提取的部分。 |
small() | 使用小字号来显示字符串。 |
split() | 把字符串分割为字符串数组。 |
strike() | 使用删除线来显示字符串。 |
sub() | 把字符串显示为下标。 |
substr() | 从起始索引号提取字符串中指定数目的字符。 |
substring() | 提取字符串中两个指定的索引号之间的字符。 |
sup() | 把字符串显示为上标。 |
toLocaleLowerCase() | 把字符串转换为小写。 |
toLocaleUpperCase() | 把字符串转换为大写。 |
toLowerCase() | 把字符串转换为小写。 |
toUpperCase() | 把字符串转换为大写。 |
toSource() | 代表对象的源代码。 |
toString() | 返回字符串。 |
valueOf() | 返回某个字符串对象的原始值。 |
1、anchor()
语法
stringObject.anchor(anchorname)//anchorname 为必需。为锚定义名称。
示例
<script type="text/javascript">
var txt="Hello world!"
document.write(txt.anchor("myanchor"))
</script>
上面的代码将输出为纯粹的 HTML:
Hello world!
2、big()
语法
stringObject.big()
示例
<script type="text/javascript">
var str="Hello world!"
document.write(str.big())
</script>
在本例中,”Hello world!” 将被显示为大号字体:Hello world!
相同使用方法的还有blink()、bold()、fixed()、italics()、small()、strike()、sub()、sup()、toLocaleLowerCase()、toLocaleUpperCase()、toLowerCase()、toUpperCase()此处不再一一列举。
3、charAt()
语法
stringObject.charAt(index)//index为必需。表示字符串中某个位置的数字,即字符在字符串中的下标。
提示:
字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。
示例
在字符串 “Hello world!” 中,我们将返回位置 1 的字符:
<script type="text/javascript">
var str="Hello world!"
document.write(str.charAt(1))
</script>
output:e
4、charCodeAt()
语法
stringObject.charCodeAt(index)//index为必需。表示字符串中某个位置的数字,即字符在字符串中的下标。
提示:
字符串中第一个字符的下标是 0。如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。
示例
在字符串 “Hello world!” 中,我们将返回位置 1 的字符的 Unicode 编码:
<script type="text/javascript">
var str="Hello world!"
document.write(str.charCodeAt(1))
</script>
output:101
5、concat()
语法
arrayObject.concat(arrayX,arrayX,......,arrayX) /*arrayX为必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。*/
返回值:返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
示例1
<script type="text/javascript">
var a = [1,2,3];
document.write(a.concat(4,5));
</script>
output:1,2,3,4,5
示例 2
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
document.write(arr.concat(arr2))
</script>
output:George,John,Thomas,James,Adrew,Martin
示例 3
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
var arr3 = new Array(2)
arr3[0] = "William"
arr3[1] = "Franklin"
document.write(arr.concat(arr2,arr3))
</script>
output:George,John,Thomas,James,Adrew,Martin,William,Franklin
6、fontcolor()
语法
stringObject.fontcolor(color) /*color为必需。为字符串规定 font-color。该值必须是颜色名(red)、RGB 值(rgb(255,0,0))或者十六进制数(#FF0000)。*/
示例
在本例中,”Hello world!” 将显示为红色:
<script type="text/javascript">
var str="Hello world!"
document.write(str.fontcolor("Red"))
</script>
fontsize()用法相同,暂且不做解释。
7、fromCharCode()
语法
String.fromCharCode(numX,numX,...,numX);
/*numX为必需。一个或多个 Unicode 值,即要创建的字符串中的字符的 Unicode 编码。 */
提示:该方法是 String 的静态方法,字符串中的每个字符都由单独的数字 Unicode 编码指定。
它不能作为您已创建的 String 对象的方法来使用。因此它的语法应该是 String.fromCharCode(),而不是 myStringObject.fromCharCode()。
示例
<script type="text/javascript">
document.write(String.fromCharCode(72,69,76,76,79))
document.write("<br />")
document.write(String.fromCharCode(65,66,67))
</script>
output:
HELLO
ABC
8、indexOf()
stringObject.indexOf(searchvalue,fromindex);
/*searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。*/
说明:
该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。
注释:indexOf() 方法对大小写敏感!
注释:如果要检索的字符串值没有出现,则该方法返回 -1。
示例
<script type="text/javascript">
var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />")
document.write(str.indexOf("World") + "<br />")
document.write(str.indexOf("world"))
</script>
output:
0
-1
6
9、lastIndexOf()
语法
stringObject.lastIndexOf(searchvalue,fromindex);
/*searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。*/
返回值:如果在 stringObject 中的 fromindex 位置之前存在 searchvalue,则返回的是出现的最后一个 searchvalue 的位置。
说明:该方法将从尾到头地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的结尾(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一个字符在 stringObject 中的位置。stringObject 中的字符位置是从 0 开始的。
注释:lastIndexOf() 方法对大小写敏感!
注释:如果要检索的字符串值没有出现,则该方法返回 -1。
示例
<script type="text/javascript">
var str="Hello world!"
document.write(str.lastIndexOf("Hello") + "<br />")
document.write(str.lastIndexOf("World") + "<br />")
document.write(str.lastIndexOf("world"))
</script>
output:
6
-1
0