字符串
http://book.jirengu.com/fe/前端基础/Javascript/字符串.html
字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。
'abc'
"abc"
单引号字符串的内部,可以使用双引号。双引号字符串的内部,可以使用单引号。
'key="value"'
"It's a long journey"
多行与转义
如果要在单引号字符串的内部,使用单引号(或者在双引号字符串的内部,使用双引号),
就必须在内部的单引号(或者双引号)前面加上反斜杠,用来转义。
'Did she say \'Hello\'?'
// "Did she say 'Hello'?"
"Did she say \"Hello\"?"
// "Did she say "Hello"?"
换行:
vstr6 ='hello\
world'
var str7 ='hello\n world'
字符串默认只能写在一行内,分成多行将会报错。
'a
b
c'
// SyntaxError: Unexpected token ILLEGAL
上面代码将一个字符串分成三行,JavaScript就会报错。
如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠。
var longString = "Long \
long \
long \
string";
longString
// "Long long long string"
上面代码表示,加了反斜杠以后,原来写在一行的字符串,可以分成多行,效果与写在同一行完全一样。注意,反斜杠的后面必须是换行符,而不能有其他字符(比如空格),否则会报错。
连接运算符(+)可以连接多个单行字符串,用来模拟多行字符串。
var longString = 'Long '
+ 'long '
+ 'long '
+ 'string';
···
另外,有一种利用多行注释,生成多行字符串的变通方法。
···
(function () { /*
line 1
line 2
line 3
*/}).toString().split('\n').slice(1,-1).join('\n')
// "line 1 line 2 line 3"
···
反斜杠在字符串内有特殊含义,用来表示一些特殊字符,所以又称为转义符。
如果字符串的正常内容之中,需要包含反斜杠,则反斜杠前需要再加一个反斜杠,用来对自身转义。
···
"Prev \\ Next"
// "Prev \ Next"
常见的字符串方法
长度计算,连接
var str = "hello";
console.log( str.length );
console.log( str[0] );
console.log( str[str.length - 1] );
console.log( str.charAt(0) );
console.log( str.charCodeAt(0) );'a'.charCodeAt(0)的码是97
var str2 = " world";
var str3 = str1 + str2;
cosnole.log( str3 );
字符串截取
var str = "hello world";
var sub1 = str.subStr(1, 3); // 第一个是开始位置, 第二个是长度 ell
var sub2 = str.subString(1, 3); // 第一个是开始位置,第二个是结束位置,长度为第二个-第一个 el
var sub3 = str.slice(1, 3); // 同上 允许负参
查找
var str = "hello my world";
var s1 = str.search('my'); //6 找不到为-1
var s2 = str.replace('my', 'your'); //
var s3 = str.match('my'); //返回匹配的数组
4. 大小写
var str = "Hello";
str.toUpperCase();
str.toLowerCase();
5. str11.split('')字符串切割
var str = 'abcdefg'
str.split('')
str.split('').reverse()
str.split('').reverse().join('')
str == str.split('').reverse().join('')
str = 'abcdefgfedcba'
str == str.split('').reverse().join('')
function isReverse(str){
return str ===str.split('').reverse().join()
}
相关作业:
1、使用数组拼接出如下字符串
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTpl(data){
var getData =
'<dl class="product">'+'\n'
+'\t'+'<dt>'+data.name+'</dt>'+'\n'
+'\t'+'<dd>'+data.styles[0]+'</dd>'+'\n'
+'\t'+'<dd>'+data.styles[1]+'</dd>'+'\n'
+'\t'+'<dd>'+data.styles[2]+'</dd>'+'\n'
+'</dl>';
return getData;
}
var result = getTpl(prod); //result为下面的字符串
console.log(result);
<dl class="product">
<dt>女装</dt>
<dd>短款</dd>
<dd>冬季</dd>
<dd>春装</dd>
</dl>
2、写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
var a = 'abcdcba';
var b = 'abcdcbb';
function isReverse(str){
return ===str.split('').reverse().join('');
}
console.log (isReverse(a));
console.log (isReverse(b));