JavaScript中的string对象用来干嘛的?

JavaScript021

JavaScript中的string对象用来干嘛的?,第1张

string对象是用来表示字符串的,如”Hello,world”,“今天天气不错!”,”床前明月光,疑是地上霜”这样的都是字符串。JavaScript中的string对象不仅能存储这些字符串,还提供了操作这些字符串的操作。

var sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + … + 997 + 998 + 999 + 1000

我在这里简单说下string对象的使用吧。

首先是字符串的定义,我们通常用双引号或单引号来定义字符串,如:

双引号定义字符串

var stringVar = “使用双引号声明字符串”

单引号定义字符串

var stringVar = ‘使用单引号声明字符串’

需要注意的有几点:

1、不能混合使用单、双引号。错误的写法如:

var stringVar = ‘不合法的字符串声明。”

2、引号不能嵌套:如

var stringVar = ‘Don’t mix your quotes.’

但可以这样写:

var stringVar = “Don’t mix your quotes”

3、转义字符,如果字符串中双引号和单引号都有,也可以用string对象保存,但这里就要用到转义字符’\’

var stringVar = “he said \“that’s fine,\”and left.”

转义字符后面的单引号或双引号不会试图去结束一个字符串的定义;而表示它是字符串的一部分。

刚刚我们提到,string对象可以操作字符串,这是因为它提供了一些属性和方法。

最常见的属性就是length属性,它返回字符串的长度,这里我主要说几个常用的字符串的方法。

1、 toUpperCase()方法,将字符串中的字符全部转换成大写。

var phrase = “This is a simple phrase.”

console.log(phrase.toUpperCase()) // THIS IS A SIMPLE PHRASE.

2、 toLowerCase()方法,将字符串中的字符全部转换成小写。

3、 split()方法,split方法将字符串对象拆分,并将拆分出的字符串通过数组返回。如下示例

var phrase = “This is a simple phrase.”

var words = phrase.split(“ ”)

//words中的元素有五个,分别为This、is、a、simple、phrase。

split方法接收一个字符串参数,参数表示拆分字符串的位置;示例中的参数为空格,表示split将在空格的位置将phrase对象拆分成多个字符串。但并不是每次拆分都是用空格,也可以是逗号,句号等其它字符或字符串进行拆分。

4、 indexOf()方法,它能找出String 对象内第一次出现的子字符串的位置。若没有查找的字符串,则返回-1。

5、 lastIndexOf()方法,它用于查找字符串对象最后一次出现的子字符串。若没有查找的字符串,则返回-1。

string对象除了这些属性和方法,还允许字符串和字符串进行比较,连接等操作。所以说string是一个相当强大的对象。如果你想深入了解JavaScript的数据类型可以上秒秒了解下JavaScript的相关课程。

1.字符串创建方式

2.string以及任何的js数据都有两种身份:

1)表示自身数据类型

2)表示对象类型身份:对象类型身份给每种数据类型提供了很多的操作方法,便于对数据进行操作

总之就是js中一切皆是对象,可以对其进行相应的操作。

3.字符串对象属性lenght。

string.lenght

表示字符串包含字符的个数

4.String对象方法

2)、 chartCodeAt (获取字符串指定下标字符的UniCode编码)

3)、 indexOf (获取指定字符下标首次出现的位置)

字符串.indexOf('指定字符') 获取指定字符下标,没有则返回-1

字符串.indexOf('指定字符',指定下标) 从指定下标处开始获取指定字符下标,没有则返回-1

可以用来判断html的class属性中是否包含某些类名。

4)、 lastIndexOf用法与indexOf完全相同,只是lastIndexOf是从后往前查找

5)、字符串的比较:

字符串大小比较实际上是比较两个字符串的ASCII编码值。1-9ASCII编码值逐渐增大,a-z编码值逐渐增大。

比较方法:先比较两个字符串的首位,首位相同则比较下一位,以此类推。

6)、字符串的截取方法substring

字符串.substring(起点下标,终点下标),可以截取到起点截取不到终点。起点终点位置颠倒也可以

字符串.substring(起点下标);起点及后面都可以截取到

字符串.substring(负数),如果传入参数为负数,会直接将负数参数置为0

7)、字符串的截取方法Slice

字符串.slice(起点下标,终点下标),可以截取到起点截取不到终点。起点终点位置颠倒不可以

字符串.slice(起点下标),起点及后面都可以截取到

如果参数为负,会将参数与原字符串的lenght相加得到结果作为参数,加完后还为负数,则置为零。

8)、字符串大小写转换方法:toUpperCase()toLowerCase()

9)、字符串的切割方法:split

字符串.split('切割标识')

以切割标识进行切割,将字符串切割分开,放入数组钟,并将数组返回。

切割标识会被切掉,不会保留到数组中,如果不传切割标识则将整个字符串放入数组作为一个数组项。

例子:例如微信小程序扫码进入页面传的参数为233_affadsgafd,则通过split("_")截取,scene[0]的值为233,scene[1]的值为affadsgafd

10)、替换字符串方法:replace()

字符串.replace('要替换的字符部分','用来替换的字符部分')

11)、删除字符串两端空格方法:trim()

字符串.trim()

删除字符串两边空格,一般用在注册用户名或密码的时候,防止用户输入空格;

trim只删除字符串两端空格,不删除字符串中间的空格

js中的基础类型有6种

5种基础类型:undefined null String Number Boolean

1中引用类型:Object

基础类型的string有如下定义方式:

这三种方式有什么区别吗?

str1、str2是普通的字符串,str3是个对象?什么原因呢?

用 typeof 验证一下

用 instanceof 验证一下

可以看出 str3 确确实实是个String对象了

再来看个有意思的事,如果给String加上自定义方法和属性呢?

虽然 str1、str2不是对象,但可以用String上的方法和属性

再看,如果直接给str1、str2定义方法和属性呢?

可以看出str1、str2是不能定义自己的方法和属性的,而str3可以

这就能看出 js 的神奇部分了,什么原理呢?

来看包装对象和原始资料类型

上面看到的str1、str2即为原始资料类型,str3为包装对象,通过typeof可以看出

但str1、str2不能自己定义属性和方法,却可以用String的属性和方法

总结一下

1、第一种和第二种方法定义出来的是原始资料类型,并储存于栈中,并向包装对象(new ..())借来方法和属性.

2、第三种是 包装对象,栈中储存堆指针,堆中储存内容。

关于堆、栈、指针的问题,咱们继续学习