JS基础(七)
一、数组内置对象
1、数组截取
var str=[1,2,3,4,5,6]
var str.slice(begin,end);
从 begin 位置处开始截取, 直到 end 位置结束(不包括结束位置); 如果只传递一个参数, 表示从起始位置一直截取到最末尾。
2、数组转成字符串
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EMNH4p1S-1614041258712)(E:\黑马培训\前端基础\案例练习\就业班\笔记\JS基础\JS第七天\images\图片5.png)]
- toString()默认是逗号隔开
3、数组拼接
var str1=[1,256,6,656,5];
var str2=['asda','asd','asf'];
var str3=str1.concat(str2);
4、数组删除元素
var str=[1,2,3,4,5,6];
str.splice(m,n);
从起始位置 m 处开始删除元素, 删除 n 个元素, 会在原数组的基础上进行修改
二、字符串内置对象
1、字符串的不可变
- 指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。
- 由于字符串的不可变,在大量拼接字符串的时候会有效率问题
2、获取字符串指定位置字符
str[index];
str.charAt(index);
范例:
var str=[1,2,3,4,5,6];
console.log(str[3]);
console.log(str.charAt(3));
3、 在字符串中查找某个字符的位置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KCWL2MX0-1614041258714)(E:\黑马培训\前端基础\案例练习\就业班\笔记\JS基础\JS第七天\images\图片7.png)]
4、字符串转数组
split()方法用于切分字符串,它可以将字符串切分为数组。在切分完毕之后,返回的是一个新数组。
字符串.split("分割字符");
//var str = 'abcd' ==> ['a', 'b', 'c', 'd']
var arr = str.split('')
5、字符串替换
replace() 方法用于在字符串中用一些字符替换另一些字符,其使用格式如下:
字符串.replace(被替换的字符串, 要替换为的字符串);
6、字符串中截取一段字符
1. slice(m, n)//slice[开始位置,结束位置)不包括结束位置
2. substr(m, n)//n 表示截取的位数
3. substring(m, n)//slice[开始位置,结束位置)不包括结束位置,不支持负数
范例:
var str = 'abc123abc123'
// 2. 截取一段字符串: slice[开始位置,结束位置)不包括结束位置
var str2 = str.slice(3, 6);
console.log(str2);//123
console.log(str);//abc123abc123
console.log('-----------');
// 3. 截取一段字符串: substr(开始位置, 截取的位数)
var str3 = str.substr(3, 6)
console.log(str3);//123abc
console.log(str);//abc123abc123
console.log('-----------');
// 4. (了解)截取一段字符串: substring(开始位置,结束位置) 不支持负数
var str4 = str.substring(3, 6);
console.log(str4);//123
console.log(str);//abc123abc123
console.log('-----------');
- 共同点: 如果只传一个参数, 表示从当前位置一直截取到最末尾
7、 字符串中把大小写转换
toUpperCase()//小写转大写
toLowerCase()//大写转小写
8、字符串特性★
字符串的不可变性, 如果想要去修改字符串, 只能重新赋值
三、数据的内存分配
1、简单数据类型
简单类型(基本数据类型、值类型):在存储时变量中存储的是值本身,包括string ,number,boolean,undefined,null
存储在栈当中, 存储的是值本身
2、复杂数据类型
复杂数据类型(引用类型):在存储时变量中存储的仅仅是地址(引用),通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等;
存储在堆内存中, 存储的是地址值
3、特性
特性: 所有的变量,函数名,简单数据类型都存在栈当中, 堆当中只存储复杂数据类型值本身
4、函数传参时的区别:
简单数据类型传递的是值本身
复杂数据类型传递的是地址值