day6 字符串

字符串的概述

字符串基础数据类型属于值类型,值类型是不可以改变的。字符串的相关方法是不能改变原本的字符串的,以返回一个新的字符串做为对应的特性。字符串也是一个数据结构(存储结构)数据结构名叫做串(字符串一块组成的一个串),那么他就具备增删改查的方法。

字符串的声明创建

第一种声明直接赋值(常用)

var str = 'hello' //单引号和双引号都是字符串
var str = "您好"

第二种声明方式 使用new关键词 (重新开辟内存)

var str =new String('你好')

引用类型转为值类型 拆箱

var str = new String('哥哥')
let str1 = str.toString()//转为值类型
console.log(str1)//哥哥

值类型转为引用类型装箱

var  str =  '哥哥'
let str2 =new String(str)
console.log(str2) // String {'哥哥'}

new String 和 String的区别 new String会重新开辟空间

//new String和String的区别
var number1 = 10
var strNumber = String(number1) //字符串10
var strNumber1 = new String(number1) //字符串10
console.log(strNumber === '10'); // true 不会开辟新的内存空间
console.log(strNumber1 === '10'); //false 会开辟新的内存空间
  • new String 会重新开辟新的内存空间
  • 而String只是简单进行转换 转换的值位于栈上面

es6新增的字符串模板 ``

var number = 10 
var str = `您的年纪是${number}`
console.log(str) //您的年纪是10岁
  • 使用``来包含 里面可以识别对应的变量
  • 对应需要识别的变量使用${变量名}

字符串的相关方法(不会改变原本字符串的)

字符串有length属性

 var str = '哎呀.帅哥'
        let length = str.length
        console.log(length);

indexOf(从前到后) 找到返回下标 找不到返回-1 默认从0开始 也可以指定位置

var str = '我是帅哥,不要质疑帅哦个'
        let s = str.indexOf('帅哥')//下标为2
        console.log(s);
        let shuai = str.indexOf('帅', 3)//下标为9
        console.log(shuai);

lastIndexOf (从后往前)

//lastIndexOf 从后往前找
console.log(str.lastIndexOf('abc'));//7
console.log(str.lastIndexOf('abc',str.length-1));//字符串的length表示对应的长度 不写对应的后面的位置就是默认从最后一位开始
//指定从下标4开始 从后往前查找
console.log(str.lastIndexOf('abc',4));//0
//指定下标从1开始找 从后往前找 (可以包含后面的内容)
console.log(str.lastIndexOf('abc',1));//0

search () 找到了返回下标 找不到返回-1 ,支持正则

 var str1 = '我是帅哥,不要质疑帅哦个'
        let s1 = str.search(//ig)//下标为2
        console.log(s1);

match() 条件满足返回数组 ,不满足返回空 null 支持正常

 var str = '我是帅哥,不要质疑帅哥'
        var match = str.match(//gi)
        console.log(match);//(2) ['哥', '哥']

通过下标取值的方式

  • 1)index [下标]
  • 2)charAt(index)
 var str = '哎呀.帅哥'
        let length = str.length
        console.log(str[0]);//哎
        console.log(str.charAt(0));//哎

通过下标获取字符的ASCII码

var str='b我是帅哥a'
        console.log(str.charCodeAt(5));//97
        console.log(str.charCodeAt(2));//26159

通过ASCII码获得字符 静态方法 类.方法

		console.log( String.fromCharCode(97));//a
       	console.log(String.fromCharCode(98));//b

截取的三种方法
slice()(开始下标,结束下标) 截取 包含开始,不包含结束 不改变原字符串 返回截取后的字符串

 var str = '我是帅哥,不要质疑帅哥'
        console.log(str.slice(2, 4));//帅哥

substring 与slice一样的作用 用于截取字符串 会自动调整顺序

		 console.log(str.substring(5, 7));//不要
         console.log(str.substring(7, 5));//不要

substr(开始位置,截取多少个)

var str = '我是帅哥,不要质疑帅哥'
        console.log(str.substr(5, 2));//不要

合并 + .concat()

var str1='天天'
      var str2 ='向上'
      console.log(str1+str2);
      console.log(str1.concat(str2));//天天向上

splite() 把字符串通过指定的格式,切割成一个数组 支持指定格式的字符串

 var str ='2022-11-21'
       console.log(str.split());//['2022-11-21']
       console.log(str.split(''))//(10) ['2', '0', '2', '2', '-', '1', '1', '-', '2', '1']
       console.log(str.split('-'))//(3) ['2022', '11', '21']
       console.log(str.split(/-/gi));//(3) ['2022', '11', '21']

.trim() 去掉前后空白

var str ='    我的帅哥'
       console.log(str);//    我的帅哥
       console.log(str.trim());//我的帅哥

转大写 .toUppercase() 转小写 .toLowercase()

var str = 'abc'
       console.log(str.toUpperCase());//ABC
       console.log(str.toLowerCase());//abc

replace(被替换者,新的值) 替换 返回新的字符串

 var str ='台上的帅哥'
        let res=str.replace('上','ddd')
        console.log(str);//'台上的帅哥'
        console.log(res);//台ddd的帅哥
// 所有的方法里面以函数作为的参数的函数称为高阶函数

// replace其实是一个高阶函数
var str = '你好世界'
var str1 = str.replace('好',function(value){//这个value其实就是你匹配的值
    console.log(value);
    return value+'坏' //返回的值其实就你用于替换的值
})
console.log(str1);//你好坏世界

repeat(次数) 重复多少次

    console.log( str.repeat(12));.//重复12次

Math类

概述:Math类是用于数学运算的。他里面的属性及相关的方法都是静态的(方便调用)。

属性 property:

PI 圆周率Π

E 科学计数法

方法 function:

Math.max 最大值

Math.min 最小值

Math.pow 幂次方

Math.sqrt 开平方

Math.ceil 向上取整 *

Math.floor 向下取整 *

Math.round 四舍五入 *

Math.random 取随机数(0-1随机数 包含0不包含1)*

Math.abs 取绝对值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值