js中改变字符串内容
1.concat(‘ 字符串’)可以添加内容,内容就为concat里的内容``
2.substr(‘截取的起始位置’, ‘截取几个字符’),可以截取已有的字符串内容
// 1. concat('字符串1','字符串2'....)
var str = 'andy';
var cha = str.concat('add');
alert(cha)
console.log(str.concat('red'));
alert(cha.substr(0,2)) //an
3.替换字符replace(‘ 被替换的字符 ’,‘ 替换进去的字符 ’ ),这个方法只会替换第一个遇到的字符,后面相同的不会替换 , 但是我们可以利用循环的方式将字符串里重复的字符一一替换,利用indexOf
// 1. 替换字符 replace('被替换的字符', '替换为的字符') 它只会替换第一个字符
var str = 'andyandy';
var cha = str.replace('n','b')
console.log(cha); // abdyabdy
// 有一个字符串 'abcoefoxyozzopp' 要求把里面所有的 o 替换为 *
var str1 = 'abcoefoxyozzopp';
while (str1.indexOf('o') !== -1) {
str1 = str1.replace('o', '*');
}
console.log(str1);
indexOf可以查找字符
// 字符串对象 根据字符返回位置 str.indexOf('要查找的字符', [起始的位置])
var str = '改革春风吹满地,春天来了';
console.log(str.indexOf('春')); //2
console.log(str.indexOf('春', 3)); // 从索引号是 3的位置开始往后查找,结果 8
// 查找字符串"abcoefoxyozzopp"中所有o出现的位置以及次数
// 核心算法:先查找第一个o出现的位置
// 然后 只要indexOf 返回的结果不是 -1 就继续往后查找
// 因为indexOf 只能查找到第一个,所以后面的查找,一定是当前索引加1,从而继续查找
var str = "oabcoefoxyozzopp";
var index = str.indexOf('o');
var num = 0;
while(index !== -1) {
num++;
index = str.indexOf('o',index + 1);
}
alert(num)
字符转换为数组
// 2. 字符转换为数组 split('分隔符') 前面我们学过 join 把数组转换为字符串
var str2 = 'red, pink, blue';
console.log(str2.split(','));
var str3 = 'red&pink&blue';
console.log(str3.split('&'));
数组转为字符串
// 数组转换为字符串
// 1. toString() 将我们的数组转换为字符串
var arr = [1, 2, 3];
console.log(arr.toString()); // 1,2,3
console.log(arr.join()); //1,2,3
// 2. join(分隔符)
var arr1 = ['green', 'blue', 'pink'];
console.log(arr1.join()); // green,blue,pink
console.log(arr1.join('-')); // green-blue-pink
console.log(arr1.join('&')); // green&blue&pink
简单数据传参 和复杂数据传参
// 简单数据类型 null 返回的是一个空的对象 object
var timer = null;
console.log(typeof timer);
// 如果有个变量我们以后打算存储为对象,暂时没想好放啥, 这个时候就给 null
// 1. 简单数据类型 是存放在栈里面 里面直接开辟一个空间存放的是值
// 2. 复杂数据类型 首先在栈里面存放地址 十六进制表示 然后这个地址指向堆里面的数据
简单数据
// 简单数据类型传参
function fn(a) {
a++;
console.log(a); // 11
}
var x = 10;
fn(x);
console.log(x); // 10
// 复杂数据类型传参
function Person(name) {
this.name = name;
}
function f1(x) { // x = p
console.log(x.name); // 2. 这个输出什么 ? 刘德华
x.name = "张学友";
console.log(x.name); // 3. 这个输出什么 ? 张学友
}
var p = new Person("刘德华");
console.log(p.name); // 1. 这个输出什么 ? 刘德华
f1(p);
console.log(p.name); // 4. 这个输出什么 ? 张学友
添加和删除数组元素
1.push()在后面加
2.unshift ()在前面加
这两个使用完毕后原数组也会改变,返回值为新数组的长度
3.pop()和 shift()都可以删除数组的最后一个元素,这个方法没有参数,且一次只能删除一个元素,pop和shift完毕后返回值为删除的那个元素,原数组也会变化
筛选数组
创建一个新数组,利用循环+判断筛选出数组里符合要求的元素添加到新数组中
// 有一个包含工资的数组[1500, 1200, 2000, 2100, 1800],要求把数组中工资超过2000的删除,剩余的放到新数组里面
var arr = [1500, 1200, 2000, 2100, 1800];
var newArr = [];
var num = 0;
for (var i = 0; i < arr.length; i++) {
if (arr[i] < 2000) {
// newArr[newArr.length] = arr[i];
newArr.push(arr[i]);
num++
}
}
console.log(newArr);
console.log(num);
翻转数组和数组排序
reserve()
// 1. 翻转数组
var arr = ['pink', 'red', 'blue'];
arr.reverse();
console.log(arr); // //['blue','red','pink']
// 2. 数组排序(冒泡排序)
var arr1 = [13, 4, 77, 1, 7];
arr1.sort(function(a, b) {
// return a - b; 升序的顺序排列
return b - a; // 降序的顺序排列
});
console.log(arr1); //0: 77
//1: 13
//2: 7
//3: 4
//4: 1