08------JS字符串深入

字符串

  • 有两种形式的字符串:基本类型,对象类型
  • 对象类型的字符串封装了一些属性以及方法,而基本类型则没有
  • 可以直接用基本类型字符串调用字符串对象封装的属性及方法,无须手动转换
var str = 'hello world'
console.log(typeof str) //string
var str1 = new String('hello world')
console.log(typeof str1) // object

字符串的长度

  • 字符串中的length是只读属性,不可更改
  • 按照各国标注字符来计算长度

字符串的常用方法

1.charAt(index)

  • 功能:获取对应下标处的字符
  • 参数:下标
  • 返回值:获取到的字符,没有对应下标则返回空字符串
var str = 'I am a student'
console.log(str.charAt(3)) // m
console.log(str.charAt(30)) // ""
console.log(typeof str.charAt(30)) // string

2.charCodeAt(index)

  • 功能:获取对应下标处的字符编码
  • 参数:下标
  • 返回值:获取到的字符编码(0-65535),没有对应下标则返回NaN
var str = 'I am a student'
console.log(str.charAt(3)) // m
console.log(str.charAt(30)) // ""
console.log(typeof str.charAt(30)) // string

3.String.fromCharCode(ASCII码)

  • 功能:获取ASCII码对应的字符
  • 参数:ASCII码
  • 返回值:对应的字符
var charStr = String.fromCharCode(117)
console.log(charStr)

4.toLowerCase(),toUpperCase()

  • 功能:字符串的大小写转换
  • 返回值:转换后的字符串
  • 注意:不会改变原字符串
var str = 'Hello'
console.log(str.toUpperCase()) // HELLO
console.log(str) // Hello
console.log(str.toLowerCase())  // hello
console.log(str) // Hello

5.==, ===判断相等

  • ==:只比较值相等,不对类型进行比较
  • ===:要求值和类型均相等
console.log(1 == "1") //true
console.log(1 == true) // true
console.log(1 === "1") //false
console.log(1 === true) //false

6.localeCompare()

  • 字符串比较大小

  • 规则:两个字符串从下标为0的字符开始比较,如果谁的ASCII码值大,那么谁大,如果相等继续比较后面的字符,当两个字符不相等时停止比较,此时谁的ASCII码值大谁就大

  • 返回值:

    • 1:前面字符串大于后面的字符串
    • -1:前面的字符串小于后面的字符串
    • 0:前面的字符串等于后面的字符串
var str1 = "abcd"
var str2 = "abdd"
var result = str1.localeCompare(srt2)
if(result > 0) {
	console.log(str1 + ">" + str2)
} else if (result < 0) {
	console.log(str1 + "<" + str2) // abcd < abdd
} else {
	console.log(str1 + "==" + str2)
}

7.indexOf(searchValue,fromIndex)

  • 功能:从左至右查找第一次出现的字符串

  • 参数:

    • searchValue:要查找的字符串
    • fromIndex:可选参数:表示从指定下标开始往后查找
  • 返回值:子串第一次出现的下标,如果没有子字符串,则返回-1

8.lastIndexOf(searchValue,fromIndex)

  • 功能:从右至左查找第一次出现的字符串

  • 参数:

    • searchValue:要查找的字符串
    • fromIndex:可选参数:表示从指定下标开始往后查找
  • 返回值:子串第一次出现的下标,如果没有子字符串,则返回-1

9.replace(oldStr, newStr)

  • 字符串替换
  • 默认只能替换第一次出现的oldStr
  • 通过正则表达式可以实现全部替换
var str = "Tom is a good student! Tom is a nice man"
var newStr = str.replace("Tom", "Jerry")
console.log(str) //Tom is a good student! Tom is a nice man
console.log(newStr) //Jerry is a good student! Tom is a nice man

newStr = str.replace(/Tom/g, "Jerry")
console.log(str) //Tom is a good student! Tom is a nice man
console.log(newStr) //Jerry is a good student! Jerry is a nice man

10.substring(start,stop)

  • 定义:substring()方法用于提取字符串中介于两个指定下标之间的字符

  • 参数:

    • start:必需。一个非负的整数,要提取的子串的第一个字符在原字符中的位置
    • end:可选。一个非负的整数,要提取的子串的最后一个字符在原字符中的位置+1,如果省略该参数,那么返回的子串会一直截取到原字符串的末尾
  • 返回值:一个新的字符串,该字符串值包含stringObject的一个子字符串,其内容时从start处到stop-1处所有字符,其长度等于stop-start.

  • 注意:

    • substring()方法返回的子串包括start处的字符,但不包括stop处的字符
    • 如果参数start和stop相等,那么该方法返回的就是一个空串(即长度为0的字符串)
    • 如果start比stop大,那么该方法在提取子串之前会先交换这两个参数
    • 不会改变原字符串
var str = "Tom is a good student! Tom is a nice man"
console.log(str.substring(0, 3)) //Tom
console.log(str.substring(3, 0)) //Tom
console.log(str.substring(3)) //is a good student! Tom is a nice man
console.log(str.substring(1, 1)) //""

11.substr(start,length)

  • 定义:substr()方法用于在字符串中抽取从start下标开始的指定数目的字符。

  • 参数:

    • start:必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1指字符串中最后一个字符,-2值倒数第二个字符,类推。
    • length:可选。子串中的字符数,必须是数值,如果省略了该参数,那么返回从原字符串的开始位置到结尾的子串。
  • 返回值:一个新的字符串

  • 注意:不会改变原字符串

var str = "Tom is a good student! Tom is a nice man!"
console.log(str.substr(9, 4)) //good
console.log(str.substr(-9, 4)) //nice
console.log(str.substr(3)) //is a good student! Tom is a nice man

12.stringObject.split(separator,howmany)

  • 定义:split()方法用于把一个字符串分割成字符串数组

  • 参数:

    • separator:必需。字符串或者正则表达式,从该参数指定的地方分割stringObject
    • howmany:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
  • 返回值:一个字符串数组

  • 注意:如果把空字符串(“”)用作separator,那么stringObject中的每个字符之间都会被分割

var str = "I am a student"
console.log(str.split(" ")) // ["I","am","a","student"]
console.log(str.split(" ", 2)) // ["I","am"]

13.concat()

  • 用于将一个或多个字符串拼接起来

14.trim()

  • 这个方法创建一个字符串的副本,删除前缀以及后缀的所有空格,然后返回结果
var str = "   hello   "
console.log(str.trim()) //"hello"
console.log(str) //"   hello   "

math对象

1.四舍五入

  • Math.round(4.5)

2.向上取整

  • Math.ceil(3.1)

3.向下取整

  • Math.floor(3.9)

4.取最大值

  • Math.max(3,4,6,76,8,89,32)

5.取最小值

  • Math.min(3,4,6,76,8,89,32)

6.取绝对值

  • Math.abs(-10)

7.x的y次方

  • Math.pow(x,y)

8.开平方

  • Math.sqrt(25)

9.生成一个0-1之间的随机数

  • Math.random()
// 四舍五入
console.log(Math.round(4.5)) // 5
// 向上取整
console.log(Math.ceil(3.1)) // 4
// 向下取整
console.log(Math.floor(3.9)) // 3
// 取最大值
console.log(Math.max(3,4,6,76,8,89,32)) //89
// 取最小值
console.log(Math.min(3,4,6,76,8,89,32)) // 3
// 取绝对值
console.log(Math.abs(-10)) // 10
// x的y次方 
console.log(Math.pow(2,3)) // 8
// 开平方
console.log(Math.sqrt(25)) // 5
// 生成一个0-1之间的随机数
console.log(Math.random()) //0-1之间的随机数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值