** 字符串**
【注】在JS中将所有单引号或者双引号括起来的都叫做字符串。
- 字符串创建的方式:
(1)通过new运算符创建
var str = new String("hello");
alert(typeof str); //Object 对象有属性和函数
alert(str); //hello
(2)new可以省略
var str = String(true);
alert (typeof str); //string
(3)通过常量创建字符串
var str = "hello";
alert(str); //hello
- 字符串的属性
length 返回的是当前字符串中字符的个数
var str = "hello";
alert(str.length); //5
- 访问字符串的字符
charAt()
【格式】字符串.charAt(下标)
【返回值】对应下标的字符
【注】我们可以直接通过字符下标去访问该字符
var str = "hello";
alert(str.charAt(1)); //e
alert(str[1]);//e
【注】ECMAScript中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量
【注】+号可以作为字符串拼接符存在
var str = "hello";
str[1] = "x";
alert(str); //hello
var str = "hello";
str = "hxllo"
alert(str); //hxllo
var str = "a"+"b";
alert(str); //ab
- 字符串函数
document.write("hello".sub()+"world".sup());
5. 字符串方法
(1)chartCodeAt()
【格式】字符串.charCodeAt(下标)
返回值:返回字符串中对应下标字符的ASCII码值
var str = "hello";
alert(str.charCodeAt(1));//101
(2)String.fromCharCode();
【格式】String.fromCharCode(ASCII码值
);
参数:ASCII码值,个数任意
返回值:ASCII码值对应字符组成的字符串
var str = String.fromCharCode(97,98,99);
alert(str);//abc
(3)concat()
【格式】字符串1.concat(字符串2)
返回值:拼接成的字符串
【注】一般情况下很少有,使用字符串拼接符+
var str1 = "a";
var str2 = "b";
var str = str1.concat(str2);
alert(str); //ab
alert(str1);//a
(4)字符串查找方法
①indexOf()
【格式】字符串.indexOf(子串,开始查找的位置);
返回值:如果在字符串中查找到了子串第一次出现的位置,返回子串出现的位置,否则没有查找到返回0
var str = "abcabcabc";
alert(str.indexOf("abc")); //0
alert(str.indexOf("abcd")); //-1
alert(str.indexOf("abc",1)); //3
②lastIndexOf()
【格式】字符串.lastIndexOf(子串)
返回值:子串在字符串中最后一次出现的位置,如果没有,返回-1
var str = "abcabcabc";
alert(str.lastIndexOf("abc")); //6
③search(子串/正则) 参数可以是正则表达式
“abc” /abc/ig
【注】正则表达式可以添加修饰符,i代表忽略大小写,g代表全局匹配
var str = "Abcabcabc";
alert(str.search("abc")); //3
alert(str.search(/abc/)); //3
alert(str.search(/abc/i)); //0
(5)字符串替换
①replace()
【格式】字符串.replace(匹配的字符串/正则表达式,替换成的新字符串)
返回值:替换完成以后生成的新字符串
【注】想替换所有符合条件的字符串,就必须使用正则表达式完成
var str = "how are you";
alert(str.replace("are","old are"));//how old are you 只能替换一个 第二个不能替换
var str = "how are are you";
alert(str.replace("are","old are"));
//how old are are you
var str = "how are you";
alert(str.replace(/are/,"old are"));//how old are you
var str = "how are are you";
alert(str.replace(/are/g,"old are"));//how old are old are you
var str = "how Are are you";
alert(str.replace(/are/g,"old are"));//how old are old are you
②substring()
【格式】字符串.substring(start,end);
作用:字符串提取,在指定范围内,提取字符串,生成新字符串
返回值: 生成的新字符串。
【注】不包含结束位置的
var str = "abcdef";
alert(str.substring(2,4));//cd
(6)字符串分割
split()
【格式】字符串.split(分隔符,生成的数组的长度);
返回值:通过分隔符,分割成的装有子串的数组
【注】1、分隔符,整体
2、会分割成空字符串
3、如果分割符是空字符“”,那么我们字符串会分割成单字符
4、字符串=>数组split
数组=>字符串 join
var str = "This is a box";
var arr = str.split(" ");
alert(arr); //This,is,a,box
alert(arr.join("=")); //This=is=a=box
var str = "This is a box";
var arr = str.split(" ",2);
alert(arr); //This,is
(7) toLowerCase()方法用于将字符串转换成小写
toUpperCase()方法用于把字符串转换成大写
6. ECMA5
ECMA标准 ECMAJavascript
①严格模式
【注】 从字面意思理解,即这种严格模式下,浏览器会堆JS的要求更加苛刻
“use strict”;写在哪个作用域下所有的代码都遵从严格模式
【注】不要轻易在全局范围开头增加"use strict";建议在作用域内使用
function m1(){
max = 10;//如果在给变量赋值的时候,没有使用var声明该变量,那么当成全局变量进行处理
}
m1();
alert(max); //10
function m1(){
"use strict"
max = 10;
}
m1();
alert(max); //报错
function m1(){
"use strict"
var max = 10;
}
m1();
alert(max); //不报错