第一部分、字符串对象
1.创建方式
(1)直接创建
var 变量名 = "字符串";
(2)通过String对象创建
var 变量名 = new String("字符串");
2.length
字符串默认的属性:length,用来记录字符串的长度
var str = new String("西安邮电大学");
console.log(str.length); //结果为6
3.函数
(1)根据字符返回位置
- indexOf(value):返回参数value在字符串中首次出现的位置。若返回-1,表示未找到value。
- lastIndexOf(value):返回参数value在字符串中最后出现的位置
var str = "HelloWorld";
console.log("位置:",str.indexOf("o")); //结果为4
console.log("位置:",str.lastIndexOf("o")); //结果为6
例:要求在一组字符串中,找到所有指定元素出现的位置以及次数。
var str = "Hello World,Hello JavaScript";
var index = str.indexOf("o"); //找到"o"第一次出现的位置
var num = 0;
while (index != -1) {
console.log(index);
index = str.indexOf("o",index+1); //继续找下一个"o"
num++;
}
console.log("出现的次数:",num);
(2)根据位置返回字符
- charAt(index):返回index位置上的字符
- charCodeAt(index):返回index位置上的字符的ASCII码值
- str[index]:H5中新增的方法.把字符串看作是数组
var str = "Hello JavaScript";
console.log(str.charAt(1)); //输出字符串中索引值为1的字符,结果为e
console.log(str.charCodeAt(5)); //输出字符串中索引值为5的ASCII码,结果为32(空格)
console.log(str.charCodeAt(7)); //输出字符串中索引值为7的ASCII码,结果为97(a)
console.log(str[0]); //结果为H
(3)其他方法
- concat(str1,str2,…):用于连接多个字符串
- slice(start,[end]):切片,截取start到end之间的字符串。若没有 参数end,则截取start到串末尾的字符串
- substring(start,[end]):截取子串,作用和slice类似,但不接受负数
- substr(start,[length]):截取从start开始的连续length个字符
- toLowerCase():字符串中的字母转成小写
- toUpperCase(): 字符串中的字母转成大写
- split(seq,[,limit]):将字符串按指定的分隔符分割成数组
- replace(str1,str2):用str2替换str1
var s1 = "abc";
var s2 = "def";
var s3 = "123";
var str = "javaScript程序设计";
console.log(s1.concat(s2,s3));
console.log(str.slice(4)); //截取4到串末尾的字符
console.log(str.slice(4,10)); //截取4~10(不包含10)之间的字符
console.log(str.slice(-1,)); //截取最后一个字符
console.log(str.substring(0,10));
console.log(str.toLocaleLowerCase()); //所有字母转成小写
console.log(str.toUpperCase()); //所有字母转成大写
var phone = "135-1234-5678";
var arr = phone.split("-");
console.log(arr);
console.log(str.replace("java","Action"));
运行结果如下:
abcdef123
Script程序设计
Script
计
javaScript
javascript程序设计
JAVASCRIPT程序设计
[ '135', '1234', '5678' ]
ActionScript程序设计
第二部分、值类型和引用类型
- 在JavaScript中,简单数据类型(如字符串型、数字型、布尔型、undefined、null)又称为值类型,复杂数据类型(对象)又称为引用类型。
- 引用类型的特点是,变量中保存的仅仅是一个引用的地址,当对变量进行赋值时,并不是将对象复制了一份,而是将两个变量指向了同一个对象的引用。
var student = {
name:"关羽",
gender:"男",
age:28
};
var s2 = student;
当obj1和obj2两个变量指向了同一个对象后,如果给其中一个变量(如obj1)重新赋值为其他对象,或者重新赋值为其他值,则obj1将不再引用原来的对象,但obj2仍然在引用原来的对象。
var obj1 = { name: '小明', age: 18 };
var obj2 = obj1;
// obj1指向了一个新创建的对象
obj1 = { name: '小红', age: 17 };
// obj2仍然指向原来的对象
console.log(obj2.name); // 输出结果:小明
注意:当一个对象只被一个变量引用的时候,如果这个变量又被重新赋值,则该对象就会变成没有任何变量引用的情况,这时候就会由JavaScript的垃圾回收机制自动释放。
如果在函数的参数中修改对象的属性或方法,则在函数外面通过引用这个对象的变量访问时的结果也是修改后的。
function f1(obj){
obj.name = "川普";
}
var obj2 = {
name:"奥巴马",
age:56
}
console.log("函数调用前的对象:",obj2);
f1(obj2);
console.log("函数调用后的对象:",obj2);