JavaScript——字符串练习
发布日期:2021-06-29 11:16:43
浏览次数:2
分类:技术文章
本文共 4257 字,大约阅读时间需要 14 分钟。
字符串练习
题目
var str = ‘abaasdffggghhjjkkgfddssss34444343’;
- 字符串的长度
console.log(str.length);
- 取出指定位置的字符串,如:0,3,5,7,9
获取数组索引:
根据位置返回字符 ①charAt(index) var arr = [1,2,3,4,5,2,a]; console.log(arr.charAt(2)); // 结果返回3 ②charCodeAt(index)—返回字符的ascll码 console.log(arr.charAt(6)); // 结果是97,a的ascll码是97 ③h5新增方法 console.log(arr[0]); // 结果返回1
console.log('0:' + str[0] + ',' + '3:' + str[3] + ',' + '5:' + str[5] + ',' + '7:' + str[7] + ',' + '9:' + str[9]);
- 查找指定字符串是否在以上字符串中存在,如:i,c,b
判断是否有该属性
var o={ age:18 } if(o[‘age’]){ (‘里面有该属性’) }else{ (‘里面没有该属性’) }
if (str['i']) { console.log('3.里面有i'); } else { console.log('3.里面没i'); } if (str['c']) { console.log('3.里面有c'); } else { console.log('3.里面没c'); } if (str['b']) { console.log('3.里面有b'); } else { console.log('3.里面没b'); }
- 替换指定字符串,如:g换为22,ss换为b
获取数组索引:
根据字符返回位置 ①indexOf(要查找的字符,起始位置)返回第一个符合条件的数组元素索引 var arr = [1,2,3,4,5,2]; console.log(arr.indexOf(2)); // 结果返回2,第一个符合条件 console.log(arr.indexOf(2,2)); // 查找2,从第二个开始查找 ②lastIndexOf返回最后一个符合条件的数组元素索引 console.log(arr.lastindexOf(2)); // 结果返回5,最后一个符合条件 如果查无此寻,则会返回-1. replace(‘被替换的字符’,‘替换为的字符’) 他只会替换第一个字符,想要多个替换可用循环 var str = ‘andy’; log(str.replace(‘a’,‘b’)); // 结果为bndy
var str1 = 'abaasdffggghhjjkkgfddssss34444343'; var str2 = 'abaasdffggghhjjkkgfddssss34444343'; while (str1.indexOf('g') !== -1) { str1 = str1.replace('g', '22'); } while (str2.indexOf('ss') !== -1) { str2 = str2.replace('ss', 'b'); } console.log('4.' + str1); console.log('4.' + str2);
- 截取指定开始位置到结束位置的字符串,如:取得1-5的字符串
substr(‘截取的起始位置’,‘截取几个字符’);
var str = ‘改革春风吹满地’; log(str.substr(2,2)); // 结果是春风
console.log('5.' + str.substr(0, 5));
- 找出以上字符串出现次数最多的字符和出现的次数
var str3 = 'abaasdffggghhjjkkgfddssss34444343'; var o = { }; for (let j = 0; j < str3.length; j++) { // 这里变量sb为字符串str的第j位字符 sb = str[j]; // 查找对象o里有没有该属性,如果没有则赋值为1,如果有则自加1 if (o[sb]) { o[sb]++; } else { o[sb] = 1; } } console.log(o); // max为属性值 // ch为属性名 var max = 0; var ch = 0; for (const key in o) { if (max < o[key]) { max = o[key]; ch = key; } } console.log('6.the more times' + max); console.log('6.the more name' + ch);
复习对象知识点
对象
- 概念:是一个具体的事物,js中,对象是一组无序的相关“属性”和“方法”的集合。 属性:事物的特征,在对象中用属性来表示 方法:事物的行为,在对象中用方法来表示
- 创建: (1)用字面量创建对象: var obj = { name: ‘张三’, age: 18, sex: ‘男’, sayHi: function(){ console.log('Hi~); } }; ①里面的属性或者方法我们采取键值对的形式,键 属性名:值 属性值 ②多个属性或者方法中间用逗号隔开 ③方法冒号后面跟的是一个匿名函数 (2 )用new Object创建对象: var obj = new Object(); <—这里的O要大写 obj.uname = ‘lili’; obj.age = 18; obj.sayHi = function(){ console.log(hi~); } ①利用等号 = 赋值的方法,添加对象的属性和方法 ②每个属性和方法之间用分号结束 (3)用构造函数创建对象 一次创建一个对象,里面很多属性和方法是大量相同的,只能复制。 因此可以利用函数的方法,重复这些相同的代码,我们就把这个函数称为构造函数。 这些函数里面封装的不是普通代码,而是对象。 构造函数,就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面。
function Love(uname, sex, age) { this.name = uname; this.age = age; this.sex = sex; this.sing = function(song) { console.log(song); } // 这里别忘记添加形参以便接收实参传来的参数 } var daodao = new Love('刀刀', '男', 18); // console.log(typeof daodao); 结果是undefined。调用返回的结果是一个对象 console.log(daodao.name); console.log(daodao['age']); daodao.sing('送');①构造函数首字母必须大写②构造函数不需要return就能返回结果③调用构造函数必须使用new④只要new Love()调用函数就创建了一个对象 daodao{}⑤属性和方法前面必须添加this
- 使用: (1)调用对象的属性可以采取 对象名.属性名——consol.log(obj.name); (2)调用对象的属性可以采取 对象名[‘属性名’] (3)调用对象的方法采取 对象名.方法名(别忘了加括号)——obj.sayHi()
- new关键字 (1)在内存中创建一个新的空对象 (2)让this指向这个新的对象 (3)执行构造函数里的代码,给这个新的空对象添加属性和方法 (4)返回这个新对象(所以不需要return)
- for…in遍历对象——for(变量 in 对象){} for (var k in obj) { console.log(k); // k是变量,输出得到的是属性名 console.log(obj[k]); // 输出得到的是属性值 }
※拓展:变量、属性、函数、方法的区别;构造函数与对象的关系
- 变量和属性的相同点,他们都是用来存储数据的
- 变量和属性的不同点: (1)变量:单独声明并赋值,使用的时候直接写变量名,单独存在 (2)属性:在对象里,不需要声明,使用的时候必须是 对象.属性
- 函数和方法的相同点,都是实现某种功能,做某件事
- 函数和方法的不同点: (1)函数是单独声明并且调用的,函数名(),单独存在的 (2)方法在对象里面,调用的时候 对象.方法()
- 构造函数与对象的关系 (1)构造函数泛指某一大类,如苹果,老师 (2)对象实例特质某一事物,如青苹果,给我上课的网页老师
转载地址:https://blog.csdn.net/zx2014567296/article/details/117754955 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月04日 11时41分08秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
写论文,这个神器不能少!
2019-04-29
我在哥大读博的五年,万字总结
2019-04-29
本科、硕士、博士,究竟有何区别?
2019-04-29
如果我的实验室也这样布置,那多好。
2019-04-29
现在做硬件工程师还有前途吗?
2019-04-29
用 50 种编程语言写“Hello,World!”
2019-04-29
GD32替换STM32,这些细节一定要知道。
2019-04-29
华为员工离职心声:菊厂15年退休,感恩,让我实现了财务自由!
2019-04-29
春晚上的“拓荒牛”
2019-04-29
嵌入式驱动自学者的亲身感受,有什么建议?
2019-04-29
华为被超越!这家公司成中国最大智能手机制造商,不是小米!
2019-04-29
腾讯机器狗,站起来了!
2019-04-29
我用自己创造的深度学习框架进入腾讯,爽!
2019-04-29
芯片为什么持续缺货?
2019-04-29
又涨了?2021 年 3 月程序员工资统计新出炉
2019-04-29
初入行的C++程序员,如何快速摆脱CRUD阶段?
2019-04-29
研究生跟了一个很棒的导师是种怎样的体验?
2019-04-29
学会扶墙的机器人:没有什么能让我倒下!
2019-04-29
美国无人机在火星首飞成功,创造历史,3米飞行高度悬停30秒
2019-04-29
单片机的几种数字滤波算法
2019-04-29