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、函数传参时的区别:

简单数据类型传递的是值本身

复杂数据类型传递的是地址值