案例:求某个字符出现的位置次数;
- 核心算法:先查找第一个o出现的位置
- 然后只要indexof返回的结果不是-1就继续往后查找,
- 利用第二个参数,当前索引加1,从而继续查找
var str = 'abcdojufohrsdjscao'; var index = str.indexOf('o'); //查找第一个o的位置 var num = 0; while (index !== -1) { //当找不到之后就直接返回了 console.log(index); num++; index = str.indexOf('o', index + 1); } console.log('o出现的次数是' + num); /*4 text.html:15 8 text.html:15 17 text.html:19 o出现的次数是38*/
根据位置返回值字符:
//charAt(index)根据位置返回字符
var str = 'andy';
var chord = str.charAt(3);
console.log(chord);
//遍历字符串
for (var i = 0; i < str.length; i++) {
console.log(str.charAt(i));
}
//charCodeAt(index) 返回相对索引号的字符AS11值,目的,判断用户按下了哪个键
console.log(str.charCodeAt(0)); //97 是a的ASII码
案例:返回出现次数最多的字符
- 核心算法:利用charAt()遍历字符串
- 把每个字符都存储给对象,如果对象没有该属性,就为1,如果存在了就+1
- 遍历对象,得到最大值和该字符
//判断一个字符串中出现次数最多的字符,并统计其次数
var str = 'abdahdjslnadaerofanna';
var o = {};
for (var i = 0; i < str.length; i++) {
var chars = str.charAt(i);
if (o[chars]) {
o[chars]++;
} else {
o[chars] = 1;
}
}
//遍历对象
var max = 0;
var ch = '';
for (var k in o) {
//k得到是属性名
//o[k]得到的是属性值
if (o[k] > max) {
max = o[k];
ch = k;
}
}
console.log(max);
console.log('最多的字符是' + ch);
字符串对象操作办法:
替换字符
//替换字符 replace('被替换的字符','替换为的字符') 只会替换第一个
var str = 'andy';
console.log(str.replace('a', 'b'));
splite把字符转换为数组
var str = 'red$bule$pink';
console.log(str.split('$'));
toUpperCase//转换为大写 tolowerCase //转换小写
简单数据类型和复杂数据类型:
学习目标:
- 能够说出简单数据类型的内存分配
- 能够说出复杂数据类型的内存分配
- 能够说出简单类型如何传递参数
- 能够说出复杂类型如何 传递参数
学习内容:
- 简单类型和复杂类型
- 堆和栈
- 简单类型的数据分配
- 复杂类型的内存分配
- 简单类型传参
- 复杂类型传参
简单数据类型:在存储时存储的是值本身 string
number boolean undifined null(返回的 是空对象)
复杂数据类型:通过new关键字创建的对象 如Object Array Date
堆和栈 简单数据类型放到栈里面,复杂数据类型首先在栈里面存放地址,用16进制表示,然后地址指向堆里面的数据
简单数据类型传参:
p189
复杂数据类型传参: