String类型用于表示由零或者16位Unicode字符组成的字符序列,即字符串;字符传可由双引号(")或者单引号(')表示.
1.字符字面量
String数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其他用途的字符,特殊字符可以出现在字符串中的任意位置,且作为一个字符来解析.如下所示:
\n 换行
\t 制表
\b 空格
\r 回车
\f 进纸
\\ 斜杠(\)**
\' 单引号(')**
\" 双引号(")**
2.字符串特点:
字符串是不可变的,也就是说字符串一旦创建,其值就固定了,无法改变,要改变他就只有销毁原来的字符串再重新创建一个新的字符串.
3.转换为字符串:
要把一个值转换为字符串有两种方式:
其一:使用toString()方式;-----------js中一切皆对象,都可以继承Object的toString()方法;
var num = 22;//数值
alert(num.toString()); // 字符串"22"
//***********注意**********
//数值的toString方法可以接收一个参数,2, 8, 10, 16----->表示输出的字符串进制格式,默认输出十进制形式,如:
alert(num.toString(2)); //字符串"10110"表示22的2进制形式;
var arr = [1,3,5];
alert(arr.toString()); //字符串"1,3,5"
var num = true;//布尔值
alert(num.toString()); //字符串"true"
var num = 'jim';//字符串
alert(num.toString()); //字符串副本;
var num = function(){alert(1)};//函数
alert(num.toString()); //字符串"function(){alert(1)}"
var num = {name:1};//Object
alert(num.toString()); //字符串"[object Object]"
//*******注意********
//undefined和null没有toString方法
其二:使用String()方式;如果值有toString()方法就调用toString()方法,没有的话如果值是undefined类型就返回字符"undefined",如果值是null类型,就返回"null";
4.字符串常用方法:
charAt(): 可返回指定位置的字符;------->返回的是一个字符串子串;
var str = 'abcdefg';
alert(str.charAt(2)); //字符串"c"
charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。---->返回的是编码;这个返回值是 0 - 65535 之间的整数。
var str = 'abcdefg';
alert(str.charCodeAt(2)); //数字99;字符c的Unicode编码就是99;
concat() 用于连接两个或多个字符串。---->返回的是一个新的连接后的字符串;
var str1 = 'jim';
var str2 = '18';
var str = str1.concat(str2);
alert('str1:'+str1+'\n'+'str2:'+str2+'\n'+'str:'+str);
//str1:jim
//str2:18
//str:jim18
indexOf() 可返回某个指定的字符串值在字符串中首次出现的位置。找到返回子字符串在源字符串中首次出现的位置下表,未找到则返回-1;常用来判断一个字符串中有没有需要的字符信息;(lastIndexOf()与之一样,只是从字符串末尾开始查找)------>返回的是位置信息;
var str = 'abcdefg';
alert(str.indexOf('cd')); //数字2;
match() 在字符串内检索指定的值,存在就返回符合要求的字符串,不存在则返回null,一般与正则表达式配合使用,用于在一个字符串重搜索符合要求的字符串;
//用法:
str.match(str1);
//或者:
str.match(regexp);
replace() 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。------->被替换的字符串存在,返回替换后的新字符串,不存在则返回原字符串;
//被替换的字符串存在
var str1 = 'abcdefg';
var str = str1.replace('de','')
alert(str1+';'+str); //abcdefg;abcfg
//被替换的字符串不存在
var str1 = 'abcdefg';
var str = str1.replace('dee','')
alert(str1+';'+str); //abcdefg;abcdefg
search() 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。---->返回值是数值,首次符合要求的自字符串的索引,找不到就返回-1;多与正则配合;
//用法:
str.search(regexp);
str.search(str1);
slice() 可提取字符串的某个部分,并以新的字符串返回被提取的部分。接收两个参数,提取的开始位置和结束位置,其中结束位置可以不填,默认到字符串末尾;------>返回值是被提取的字符串;
var str = 'abcdefg';
alert(str.slice(1,3)); //字符串"bc"
split() 把一个字符串分割成字符串数组。------------------->返回值为一个分割后产生的数组;
var str1 = 'www.baidu.com';
alert(str1.split('.')); //[www,baidu,com]
toLowerCase() 方法用于把字符串转换为小写;---->返回新的字符串;
toUpperCase() 方法用于把字符串转换为大写;---->返回新的字符串;
以上两种方法多用于函数中对输入参数的判断上,统一先转换,后判断;