字符串


字符串

字符串概述

字符串是一个数据结构(串),将同样的内容串在一起,因为在对应的js里面字符串是属于一个值类型(值类型是常量 常量是不能变的)

字符串是不能改变的。作为存储结构的增删改查方法,不能针对本身,而是返回一个新的字符串。

字符串的声明

1.值类型赋值(常用)基本类型

var str = ‘hello world’

2.以new关键词声明(引用了对应的值的地址)引用类型

用new产生的变量都是引用类型的变量,也叫对象

var str = new String(’hello world’)//相当于开了两个空间

3.直接用String

var str =String(‘hello’)

ES6新增 字符串模板

var a = 'jack'
var str =`hello string ${a}`//esc下面的这个键 解析${} 以变量解析
console.log(str); //hello string jack

new String() 和 String() 区别

    var s1 = new String(‘hello world’);
   var s2 = String(‘hello world’);
   console.log(typeof s1); //object
   console.log(typeof s2); //string

new String 是构建一个String对象(引用数据类型 有地址的指向)

String单纯的将对应的传入参数转为String类型(值类型)

(当不用new运算符调用String()时,它只是转换成原始的字符串,并返回转换后的值.)

字符串属性

length属性 返回字符串的长度 (包含空格及换行)字符串是不可变的 只读(不可赋值)

var str='a b'
console.log(str.length) //3

通过下标获取对应的字符串

var str='a b'
console.log(str[3]) //b
字符串的方法(都是返回新的字符串) 可以遍历

通过下标找字符串(char字符)

charAt(下标)

var str= 'abc'
console.log(str.charAt(0)) //a

charCodeAt(ASCII码)

var str= 'abc'
console.log(str.charCodeAt(0)) ///97 --效率更高

通过字符串找下标(找不到返回-1 找得到返回对应的下标值number)

indexOf (第一次出现的地方) / lastIndexOf(最后一次出现的地方)

var str = 'abcd'
console.log(str.indexOf('ab'))  //返回下标0
console.log(str.indexOf('e'))   //返回-1
console.log(str.indexOf('b',2)) //从下标2开始查找b 找第一个出现b的位置 -1
var str1 = 'abbbccde'
console.log(str.lastIndexOf('b')) //3
console.log(str.lastIndexOf('b',0)) //从0的位置开始往前找 -1
console.log(str.lastIndexOf('b',4)) //3 从4的位置往前找,有则显示下标值
//默认情况下 第二个值可以省略,默认为str.length-1

search方法(和indexOf一样返回第一次出现的位置  支持正则表达式)

var str = 'abc'   //g表示进行全局匹配 i表示忽略大小写 w表示数字字母下划线
console.log(str.search(/ab/))  //0 /ab/ 为正则表达式
console.log(str.search(/ab/,0))  //默认从0开始写
静态方法(通过构造方法名直接调用的方法叫做静态方法 是对应的static修饰的)

fromCharCode 将对应的ASCII码转为字符串

var  str= String.fromCharCode('97')  //返回值是一个字符串
console.log(str)  //a

contact 将多个字符串转为连接成一个字符串返回

var str = "hello".contact('world')
console.log(str)
//字符串的

支持正则的方法(4个)

search 查找 (找到返回下标 没找到返回-1)

replace 替换 (将找到的字符串替换成一个新的字符串,只能执行一次,因此需要执行多次时可以进行全局匹配,使用正则表达式)

var str ="abca"
var str1 = str.replace("a","hello")  //将a替换成hello
console.log(str1) //hellobca 只能替换第一个a
console.log(str.replace(/a/g,"hello"))//所有的a都能替换掉

split 分隔(根据分隔符拆分成数组)

//分割 成为一个数组 split     数组变成字符串 join (默认以,)
var str = '1,2,3'
//默认不是以,作为分割 默认不分割 直接填入到数组
console.log(str.split()); //['1,2,3']
console.log(str.split(',')); //['1','2','3']
str.join(' ') //数组连接成字符串

match 匹配(返回一个数组(匹配的内容))

var str = "abcacc"
//默认只找第一个匹配,加入到数组
var arr = "str.match("a")"
console.log(arr) //

 

截取的方法

substring substr

substring(开始的下标,结束的下标)不包含结束的下标

var str = 'abcdef'
console.log(str.substring(1)) //bcdef
console.log(str.substring(1,3)) //bc

substr(开始的下标,截取的个数)开始的下标如果为负数,从后往前进行数,包括开始的下标

var str = 'abcdef'
console.log(str.substr(1)) //bcdef
console.log(str.substr(1,3)) //bcd

静态方法

fromCharCase 根据ASCII码转为字符串

转大写(toUpperCase)
 var str = "abcA"
console.log(str.toUpperCase) //ABCA
var str1 = str.toUpperCase()
console.log(str1) //ABCA

 

转小写(toLowerCase)
var str = "aBCA"
console.log(str.toLowerCase) //abca

Math类(数学类 一切和数学计算相关的方法都在这个里面且是静态方法)

random 随机数

round四舍五入

floor向下取整

ceil向上取整

pow取幂次方

sqrt开平方

abs取绝对值

max最大值

min最小值

alert(Math.max(1,3,4,'10abc')); //NaN
alert(Math.max(1,3,4,NaN)); //NaN
alert(Math.max(1,3,4,undefined)); //NaN

 

//随机产生对应的区间内容的数值 Math.random()*差值(最大值-最小值)+最小值 
function randomNumber(min,max){
           return Math.round(Math.random()*(max-min)+min)
}
//随机生成颜色
function randomColor(){
   var r=randomNumber(0,255)
   var g=randomNumber(0,255)
   var b=randomNumber(0,255)
   return rgb(${r},${g},${b})
}
//Math.round 四舍五入
//Math.random 生成0-1的随机数(包含0 不包含1)

回文字符串 马拉车算法

dp动态规划(dp数组)

字符串最长对比(hash比对)

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/280565.html

(0)
上一篇 2022年8月14日
下一篇 2022年8月14日

相关推荐

发表回复

登录后才能评论