JS字符串数据类型转化和分割的方法

JS字符串简介:

网页通常存在大量的文本内容,这些文本内容在 JS 中将作为字符串来处理。在 JS 中使用字符串可以在客户端动态处理网页文本内容。在 JS 中,字符串(string)是由单引号或双引号括起来的一组由 16 位 Unicode 字符组成的字符序列,用于表示和处理文本。

Unicode,也称统一码、万国码。由于计算机只能处理 0 和 1 两种数字,所以对需要处理的数据,要将其编码为二进制。最早的计算机使用一个字节(8bit)来表示一个数据,此时的编码称为 ASCII 编码,该编码能表示大小写英文字母、数字和一些符号,共 255 个字符。

对于汉字、日文和韩文等语言则无法使用 ASCII 码来表示。为此,各个国家制定了不同的编码来表示各自的文字。由于这些不同语言的文字编码并没有完全兼容,所以在进行转码时很可能会出现乱码。为了解决这个问题,就需要将不同语言的编码进行统一。为此 Unicode 编码应运而生。

Unicode 将所有语言都统一到一套编码里,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,从而实现跨语言、跨平台的文本转码。Unicode 通常用两个字节来表示一个字符,而原来使用 ASCII 编码的字符则通过将高字节全部补 0 的方式从单字节变成双字节字符。

js字符串的使用方式

(1)字符串直接量

字符串直接量就是直接引用单引号或双引号括起来的一组字符序列:

(2)字符串变量

字符串变量是指值为字符串直接量的变量。例如:var str = "哦耶";变量str为字符串变量

        

(3)字符串对象

字符串对象通过使用关键字new且包装字符串直接量来创建,创建格式如下: str就是字符串对象

 对象既可以有存储数据的属性,又可以包含处理数据的函数。为了便于对字符串直接量和字符串变量的处理,JavaScript 处理它们时,首先会将其转换为一个伪对象(等效于字符串对象),因而字符串直接量和字符串变量也具有属性和方法,这些属性及方法和字符串对象的属性和方法是完全一样。

由于创建字符串对象需要对字符串直接量进行包装,从而有可能拖慢执行速度,并可能产生其他副作用,所以在实际项目中尽量不要对字符串创建对象,而应直接使用字符串直接量进行处理,或先将其存储在一个变量中,然后针对字符串变量进行操作。

注意1:

在JS中,会自动在字符串与字符串对象之间进行转换,因此,任何一个字符串常量都可以看作是一个String对象,其可以直接作为对象使用,只要在字符串变量的后面加 “.” 便可以直接调用String对象的属性和方法。

字符串与String对象的不同在于返回的typeof值,前者返回的是string类型,后者是Object类型。

字符串直接量、字符串变量和字符串对象三者具有相同的属性和方法

注意2:

字符串转义字符( \ )

字符串直接量可以拆分成数行,但每行必须以反斜线(\)结束,反斜线和行结束符都不算是字符串直接量的内容。

 在反斜杠(\)后面加符号 . 可以把特殊字符转化为字符串字符。

可以去JavaScript 字符串 详细查看。

---------------------------------------------------------------------------------------------------------------------

JS字符串和数据类型的相互转换

:js转换类型分为两种

隐式类型转换(自动转换) 和 显式类型转换(手动强制转换)

隐式转换

当运算符运算时,运算符两边的数据类型不统一时。编译器会自动将两边数据类型转换为同一种类型在运算。

常见的隐式转换:

       -- 逻辑语句的类型转换:当使用if() ,while() ,for() 等判断语句,就会隐式转换为boolean值 true或false.

--逻辑表达式:

! 逻辑非,隐式转换为布尔值,并取反,!!两次逻辑非,隐式转换为布尔值;

|| 和 && 会将非布尔值操作数,隐式转换为布尔值,再判断;

--算数表达式

加减,乘法,除法,求模,隐式转换为 Number;

 运算中:

不同类型之间的拼接: 转化为字符串

显示转换

-转换为字符串:toString() 或 String()

-转换为数值:Number()、parseInt()、parseFloat()

 -转换为布尔值:Boolean()

-转换为对象:Object()

测试:

toString() 或 String()

 

Number()

使⽤Number()函数来对string进⾏强制类型转换是最直接的做法。不过,这种做法有⼀个局限性:如果字符串截去开头和结尾的空⽩字符

后,不是纯数字字符串,那么最终返回结果为NaN。⽤Number()函数来进⾏string-to-number转换时,函数只接受10进制字符串,但测试结果表明事实并⾮如此,Number()函数可以接

受”0xff”作为参数并将其转换成数值255。

 

parseInt()

parseInt()函数可以将字符串转换成⼀个整数,与Number()函数相⽐,parseInt()函数不仅可以解析纯数字字符串,也可以解析以数字开头

的部分数字字符串(⾮数字部分字符串在转换过程中会被去除)。值得注意的是,当parseInt()函数所解析的是浮点数字符串时,取整操作所

使⽤的⽅法为“向下取整”(truncate)。

除了字符串作为第⼀个参数,parseInt()函数还可以接受2到36之间的任意整数作为第⼆个参数,⽤于指定转换过程中的进制数。

 parseFloat()

与parseInt()⼀样,parseFloat()也可以解析以数字开头的部分数字字符串(⾮数字部分字符串在转换过程中会被去除)。与parseInt()不同的

是,parseFloat()可以将字符串转换成浮点数;但同时,parseFloat()只接受⼀个参数,且仅能处理10进制字符串。

 Boolean()

 字符串直接转换为Boolean 全为true

 Object()

 

 在用Object()直接转换为String ,会返回一个以键为下标索引 值为字符串的子字符串 ,获取子字符串可以直接 [ 下标 ] 获取:

 在对象和字符串之间转换还有一种

注意: JSON.stringify()  和 JSON.parse()

JSON.string() ; 对象转换为字符串

JSON.parse() ; 字符串转换为对象

JSON: JavaScript Object Notation(JavaScript 对象标记法)。

JSON 是一种存储和交换数据的语法。

JSON 是通过 JavaScript 对象标记法书写的文本。

交换数据

当数据在浏览器与服务器之间进行交换时,这些数据只能是文本。

JSON 属于文本,并且我们能够把任何 JavaScript 对象转换为 JSON,然后将 JSON 发送到服务器。

我们也能把从服务器接收到的任何 JSON 转换为 JavaScript 对象。

以这样的方式,我们能够把数据作为 JavaScript 对象来处理,无需复杂的解析和转译。

 

 



字符串分割:

string.length;

返回字符串的长度

 string.indexOf();

返回指定字符在字符串中第一次出现的位置的下标索引 ,无则返回 -1

 string.lastIndexOf();

返回指定字符在字符串中最后一次出现的位置的下标

 string.match();

返回指定字符在字符串中第一次出现的位置的详细信息,返回一个集合

 

 

 

 string.replace('参数1','参数2');

替换字符串中的字符,参数(被替换字符,新的字符),不改变原数组。

被替换字符格式可以是Number/Boolean/String,根据字符串中的字符判定

 

string.search(' / ');

检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。

 

 string.charAt(索引);

根据索引查找字符串中对应的字符,返回查找的字符。

如果没找到对应下标的字符,返回空字符串。

string.split();

将字符串从指定字符开始分割,返回一个数组,不改变原数组。

也可以不指定字符

string.slice('参数1','参数2') ;  截取字符串

参数1 开始截取的下标 参数2 结束的下标

只有一个参数时,从(参数1)开始截取的下标,一直截取到字符串末尾,返回截取后的字符。

 string.substr('参数1','参数2');

两个参数:1 开始的下标,2.截取几个字符,截取一部分字符,返回截取后的字符。

只有一个参数,从下标为几的位置开始截取,到字符串末尾,返回截取后的字符。

string.substring('参数1','参数2');

两个参数:1索引 2,截取两个下标之间的字符,不包含最后一个下标的字符,返回截取后的字符。

只有一个参数,从下标为几的位置开始截取,到字符串末尾,返回截取后的字符。

string转化大小写

string.toUpperCase( );将英文转换为大写

string.toLowerCase();将英文转换为小写

 也可以遍历字符串

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值