JavaScript对象编程(六)


JavaScript对象编程(六)

一、String对象

String 对象用于存储和处理文本

(1)创建String对象

var str = new String( 'Hello world ' )
str.length	//11  访问String对象length属性

(2)类型检查

var a = ' hello'
typeof a 		// string
var b = new String( ' hello')
typeof b 		// object

二、String对象访问

在早期的JavaScript设计中,字符串被设计为一种只读的字符数组,因此,字符串可以用数组的访问方式访问其中的字符

(1)访问方式

下标访问

var a = 'hello'
a[1]		// 'e'

标准访问方式charAt()

var a = 'hello'
a.charAt(1)		// ' e '

(2)字符串的不可变性
在JavaScript 中,字符串的值是不可变的,这意味着一旦字符串被创建就不能被改变。

var a = '123'
a[0] = '0'
console.log(a) 	// '123'

无法改变,但可以重新赋值

var a = '123'
a = '023'
console.log(a) 	// '023'

三、String对象的修改

原始数据类型的字符串无法修改,但可以使用String对象的replace()方法进行修改

replace()

str.replace(要修改的字符,替换后的字符)

replace无法修改原字符串,只是返回一个新字符串

var a = '123'
var b = a.replace( ' 1 ',' 0 ')		// a的值仍为'123',b的值为'023'

替换的值可以为空

var a = '123'
var b = a.replace( '1',' ')		// b的值为'23'

可以为多个字符进行操作

var a = '1234567'
var b = a.replace( '123''0123')		// b的值为"01234567”

四、String对象的分割

split() 传入一个分隔符作为参数,以该分隔符为标准,将字符串进行分割并存入一个新数组并返回

var a = '2021-4-6'
var b = a.split('-')		// b: ['2021','4','6'],a:'2021-4-6'

注意分隔符位置

var a = '-2021-4-6-var b = a.split('-')		// b:[ ' ','2021','4','6',' ']

分隔符可以为空

var a = '123'
var b = a.split(' ')		// b: ['1','2' ,'3']

第二个参数可选,代表分割后数组的最大长度

var a = '2021-4-6'
var b = a.split('-',2)		// b: ['2021','4']

分隔符可以为空格

var a = 'Hello world'
var b = a.split(' ')		// b: [ ' Hello' , 'world' ]

五、String对象常用方法

indexOf() 返回要查找的字符第一次出现的位置下标,若未找到返回-1

var a = '1234567'
a.indexOf('3')		//返回2
a.indexOf('8')		//返回-1

toLowerCase() 把字符串转为小写,不会修改原字符串

var a = 'ABC'
var b = a.toLowerCase( ) 		//b : "abc",a: "ABC"

toUpperCase() 把字符串转为大写,不会修改原字符串

var a = 'abc'
var b = a.toUpperCase( ) 		//b:"ABC",a : "abc "

六、String对象的截取

trim() 移除空白符(空格、制表符、换行符等),只对头尾操作,不会修改原字符串

var a = ' a b c ’
var b = a.trim( ) 		// b : 'a b c', a: ' a b c '

slice() 截取字符串,与数组的slice方法相同

var a = '1234567'
var b = a.slice(2)		// b: '34567', a: '1234567'

substring() 该方法与slice类似,但参数不能使用负数,若参数为负数会被当做0看待

var a = '1234567'
var b = a.substring(2)		// b:'34567', a: 1234567'
var b = a.substring(2,5)	// b: '345', a:'1234567'

substring() 的参数位置没有严格要求

var a = '1234567'
var b = a.substring(5,2)		// b: '345', a: '1234567'

substr() 第二个参数为要截取的数量

var a = '1234567'
var b = a.substr(2)		// b: '34567', a: '1234567'
var b = a.substr(2,3)	// b: '345', a: '1234567'

七、String对象的合并

concat() 将一个或多个字符串与原字符串连接合井,形成一个新的字符串并返回。concat方法并不影响原字符串。

var a = '123'
var b = '456'
var c = a.concat(b) 		//c: "123456",a: "123"

练习
将下划线命名法的字符串转为小驼峰命名法
例:输入thisis_an_example,输出thislsAnExample

function toCamelStyle(str) {
	var arr = str.split('_')
	var newStr = arr[0]
	for (var i = 1; i < arr.length; i++){
		newStr += arr[i][0].toUpperCase( ) + arr[i].slice( 1)
	}
	return newStr
}

拓展知识
利用localeCompare() 和sort进行排序

var a = 'ac'
var b = 'ab'
a.localeCompare(b)		//返回1
b.localeCompare(a)		//返回-1
var a=[
	{
		name: 'Bob'
	},
	{
		nane: 'cart'
	},
	{
		nane: 'Alice'
	}
]
a.sort( function (a, b){
	return a.name.localeCompare(b.name)
})

比较中文字符,第二个参数为可选,代表语言码,会按照该语言规则来进行比较

var a ='张三'
var b ='李四'
a.localeCompare(b,'ZH')		//返回1
b.localeCompare(a,'ZH' )	//返回-1

其中‘ZH’表示中文,具体列表见ISO 639-1语言代码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值