【JS学习】String基础方法
前言:本博客系列为学习后盾人js教程过程中的记录与产出,如果对你有帮助,欢迎关注,点赞,分享。不足之处也欢迎指正,作者会积极思考与改正。
定义:
两种方法,存在一点点区别。new方法定义出来的是对象,方法2是字符串,但使用上没多大区别,后台会自动将字符串转化为对象,因此也可以使用对象的方法。
// 方法1
let str=new String("abc");
console.log(str.toString(),typeof str);//输出abc Object
// 方法2
let str2="abc";
console.log(str2,typeof str2);//输出abc string
字符串的连接:
// 连接字符串
let a=200;
// 方法1 加号相连
let str1="abc"+"efg"+a;
// 方法2模板自变量 所谓模板自变量既用符号 `内容${变量名}` 将内容包裹 符号位于键盘esc下方按键处
let str2=`abcefg${a}`;
console.log(str1,str2);//abcefg200 abcefg200
标签模板的使用:
所谓标签模板,就是会将字符串分为字符串部分,变量部分,全部字符串的一个函数
let a="变量1";
let b="变量2";
tag1`abc${a}def${b}`
function tag1(strings,...value){
console.log(strings);
console.log(value);
}

字符串的基本方法:
let str="abc";
let str2="ABC";
let str3=" abcd ";
console.log(str.length);//长度获取 输出:3 注意:字符串中的空格也会算长度
console.log(str.toUpperCase());// 转大写 ABC
console.log(str2.toLowerCase());//转小写 abc
console.log(str3.trim());//去前后空格 abcd
// 获取单个字符
console.log("abc".charAt(2));//c
console.log("abc"[2]);//c
截取字符串的三种方法
- slice(开始位置,结束位置) 结束位置为负数则戴白从后往前算
- substring(开始位置,结束位置) 负数自动变为0
- substr(开始位置,位数)负数代表从后往前算
let hd = 'abcdefg';
console.log(hd.slice(3)); //defg 从第三个开始到最后
console.log(hd.substr(3)); //defg 从第三个开始到最后
console.log(hd.substring(3)); //defg 从第三个开始到最后
console.log(hd.slice(3, 6)); //def 从第3-6个 不包含6
console.log(hd.substring(3, 6)); //def 从第3-6个 不包含6
console.log(hd.substring(3, 0)); //abc 从第0-3个 不包含3
console.log(hd.substr(3, 6)); //defg 从第3个往后取6个
console.log(hd.slice(3, -1)); //def 从第3个到(length-1)个 不包含(length-1)
console.log(hd.slice(-2));//fg 从第(length-2)到最后
console.log(hd.substring(3, -9)); //abc 负数转为0 从0到第3个 不包含第3个
console.log(hd.substr(-3, 2)); //ef 从后面第三个开始取两个 从length-3开始取两个
查找字符串
//原始方法 从前往后indexof(字符串,开始位置)与lastIndexof(字符串,结束位置) 返回下标
console.log("123456".indexOf("1"));//0
console.log('123456'.lastIndexOf('4', 5)); //3 从0-5中检索4,返回下标 找不到返回-1
// includes(字符串,开始位置)方法 返回bool
console.log('123456'.includes('4')); //true
console.log('123456'.includes('4', 3)); //true
// 字符串检索
const word=['php',"css"];
const string1="是否存在php与css";
let status1=word.some(word=>{
console.log(word);
return string1.includes(word);
});
if(status1){
console.log("找到了");
}
// 是否以字符开始
console.log("123456".startsWith("12"));//true
console.log("123456".startsWith("12",2));//false
// 是否以字符结束
console.log("123456".endsWith("56"));//true
console.log("123456".endsWith("56",5));//false
替换字符串
// 替换字符串
// 方法一
let hd="abcdefg";
console.log(hd.replace("abc","aaa"));//aaadefg 变量.replace(被替换字符串,替换字符串)
// 方法二 结合reduce来完成替换
// reduce((pre,word)=>{
// },string)其中初始中若没有string,则pre代表数组中的第一个元素,word代表第二个元素;若有string,则pre代表string,word代表第一个元素。初始后,pre代表return的值,word代表数组中的元素
// 案列:实现将string1中的关键词word加上超链接
const word=['php',"css"];
const string1="是否存在php与css";
const str2=word.reduce((pre,word)=>{
return pre.replace(word,`<a href="?w=${word}">${word}</a>`);
},string1);
console.log(str2);
document.body.innerHTML+=str2;
重复字符串
// 案列:电话号码模糊处理
function phone(num,len=3){
return String(num).slice(0,len*-1)+"*".repeat(len);
}
console.log(phone(1786245656));
字符串的类型转换
// 字符串转数字
// 字符串全部为数字时候
let string="1234";
console.log(string+1+2);//123412
console.log(Number(string)+1+2);//1237
//当头部为数字的字符串时
console.log(parseInt("12abc"));//12
// 数值转字符串
console.log(typeof (123+""));//string
let num=123;
console.log(typeof num.toString())//string
//字符串转数组
let a="abc";
console.log(a.split(""));//['a','b','c']
//数组转字符串
let b=['a','b','c'];
console.log(b.join(''));//abc
console.log(b.toString());//a,b,c
尾记:
有任何问题,欢迎私聊哟~~~
也可关注公众号“诗与凉风”联系作者哦~~

【JS学习】String基础方法的更多相关文章
- js学习笔记--基础部分
自增 自增 ++ 通过自增可以使变量在自身的基础上增加1 对于一个变量自增以后,原变量的值会立即自增1 无论使a++, 还是++a,都会立即使原变量的值自增1. 不同的是a++ 和++a的值不同. a ...
- three.js学习笔记--基础知识
基础知识 从去年开始就在计划中的three.js终于开始了 历史介绍 (摘自ijunfan1994的转载,感谢作者) OpenGL大概许多人都有所耳闻,它是最常用的跨平台图形库. WebGL是基于Op ...
- js学习笔记——数组方法
join() 把数组中所有元素转化为字符串并连接起来,并返回该字符串, var arr=[1,2,3]; var str=arr.join("#"); //str="1# ...
- js复习---string
对js的string的方法复习: 1.charCodeAt() 返回一个整数,代表指定位置字符串的unicode编码. strObj.charCodeAt(index) index 是处理字符的从零 ...
- JavaScript (JS)基础:DOM 浅析 (含数组Array、字符串String基本方法解析)
①文本对象document: 例如:document.getElementById() 只获取一个对象 document.getElementsByTagName() 获取 ...
- Vue.JS学习基础
= 导航 顶部 vue.js介绍 vue.js实例 模板语法 计算属性 样式绑定 条件渲染 列表渲染 事件处理器 表单控件绑定 组件 顶部 vue.js介绍 vue.js实例 模板语法 计 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- 使用js进行string和json之间转换的方法
在数据传输过种中,json是以文本,即字符串的形式传递,字符串形似Json对象: var str1 = '{ "name": "Amy", "sex& ...
- JavaScript基础13——js的string对象
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- MySQL和sparkSQL合并行
表A 表B 从表A到表B MySQL 写法:select name, group_concat(score seperate ';') as score from A group by name sp ...
- sqli-labs less-7(文件读写)
less-7 dump into outfile(文件读写) 通俗的来讲,就是通过outfile传入一句话木马到网站目录里,然后用菜刀或者蚁剑等连接 过程: 输入id=?判断闭合类型 页面上提示了使用 ...
- oracle 11g调优常用语句
1.查询表的基数及选择性 select a.column_name, b.num_rows, a.num_distinct cardinality, round( ...
- vue+axois 封装请求+拦截器(请求锁+统一错误)
需求 封装常用请求 拦截器-请求锁 统一处理错误码 一.封装常用的请求 解决痛点:不要每一个模块的api都还要写get,post,patch请求方法.直接将这些常用的方法封装好. 解决方案:写一个类 ...
- Ajax相关基础知识总结
URL:统一资源定位符 网络的七层协议:网卡 驱动 网络层(ip) 传输层(tcp udp) 会话层( ) 应用层(http.) restful表征状态转移(一种表征架构) CURD 增删改查 ...
- vue第八单元(组件通信 子父,父子组件通信 自定义事件 事件修饰符 v-model props验证 )
第八单元(组件通信 子父,父子组件通信 自定义事件 事件修饰符 v-model props验证 ) #课程目标 掌握使用props让父组件给子组件传参(重点) 掌握props属性的使用以及prop验证 ...
- 聊聊自学大数据flume中容易被人忽略的细节
前言:老刘不敢保证说的有多好,但绝对是非常良心地讲述自学大数据开发路上的一些经历和感悟,保证会讲述一些不同于别人技术博客的细节. 01 自学flume的细节 老刘现在想写点有自己特色的东西,讲讲自学 ...
- JavaScript实现自定义右键菜单
JavaScript实现自定义右键菜单,思路如下: 1. 屏蔽默认右键事件: 2. 隐藏自定义的菜单模块(如div.ul等): 3. 右键点击特定或非特定区域,显示菜单模块: 4. 再次点击,隐藏菜单 ...
- CCNP之MERG实验报告
MGRE实验报告 一.实验要求: 1.R5为ISP,只能配置IP地址 2.R1--R3间建立MGRE环境,且使用EIGRP来学习各自环回 3.R4可以正常访问R5的环回 4.R1与R5进行chap认证 ...
- [UWP] - 修改应用程序在任务栏上的显示Logo
用VS2015在windows 10上开发一个UWP的应用,由于windows 10对store应用进行了窗口化,因此可以看到在任务栏上看到应用程序的图标,但是看起来会感觉应用Logo会被嵌在另一个容 ...