前言
String和布尔类型基本上是每个语言都有的类型所以记住并会使用他们的基本方法还是很重要的
一、布尔与Boolean
1.1.布尔值
布尔值主要取:true
,false
。
常使用的控制结构有:if
,while
,for
使用其他值转换Boolean的对应值如下:
转换布尔的方法分两种:
Boolean()
方法进行直接转换- 使用隐式转换
代码如下(示例):
{
let a = 'a';
console.log(Boolean(a)); // true
if(a){
console.log('a已经自动转换成布尔。');
}
}
上面代码首先将字符串a
使用Boolean()
直接转换可以看到位true;
后面使用if
进行隐式转换所以已经打印出了后面的文字。
二、字符串与String
2.1.字符串
基本特性
- 由单引号或双引号括起来的字符序列。
- 单双引号可以嵌套,由最外围引号定界字符串如:“this is a ‘dog’!”
- 字符串字面量可以拆分成数行,每行必须以反斜线
\
结束,且反斜线都不计入字符串的内容。
转义字符
- 反斜线
\
后加一个字符,用于表达特殊含义。
如,\’
,\”
,\n
,\r
,\\
等。 - 通用转义字符也可以表达Unicode编码的字符,详情请查Unicode编码表
如:\u03C0
,表示Unicode编码的π字符。\u03c0
表示π
字符串连接
- 字符串连接可以使用
+
来进行两个字符串的拼接。 - 注意:如果与对象进行拼接则只会和一个
[object Object]
进行拼接
代码如下(示例):
{
console.log('a'+10); // a10
console.log("abc"+{value:10}); // abc[object Object]
}
2.2.String()
转换成字符串
String()
方法可以把参数直接转换成字符串。
代码如下(示例):
{
let a = null;
let b = 2;
console.log(String(a)); // null
console.log(b); // 2
console.log(String({value:100})); // [object Object]
}
通过new
调用String()
字符串是一个对象
代码如下(示例):
{
let x = 100;
console.log(typeof String(x)); // String
console.log(typeof new String(x)); // object
}
2.3.String对象常用方法
大致就说一下常用的几个方法如:
charAt(index)
- -可返回指定位置的字符。
index
必选,表示字符串中某个位置的数字,即字符在字符串中的位置。
此方法也可以使用str[index]
的方式直接获取字符串中指定位置的字符。
代码如下(示例):
{
let str = "java script";
console.log(str.charAt(3)); // a
console.log(str[3]); // a
}
indexOf(searchvalue,start)
- -返回某个指定的字符串值在字符串中首次出现的位置。
searchvalue
必选,第一个参数表示你所要查找的字符串值start
可选,第二个参数表示从start索引开始查找,如果省略则表示从索引为0开始检索
代码如下(示例):
{
let str = "java script";
console.log(str.indexOf('a')); // 1
console.log(str.indexOf('a',2)); // 3
}
concat(string1, string2, ..., stringX)
- -拼接多个字符串
string1, string2, ..., stringX
必选,将被连接为一个字符串的一个或多个字符串对象。
此方法也可以使用str+str1+...+strx
的方式来进行字符串拼接
代码如下(示例):
{
let str1 = "java script";
let str2 = " nice";
console.log(str1.concat(str2)); // java script nice
console.log(str1+str2); // java script nice
}
下面的三个主要时字符串截取函数用法上有一些小不同:
slice(start,end)
- -截取字符串某个部分,并返回提取的部分。
start
必选,要截取的起始下标,第一个字符位置为 0。如果为负数,则从尾部开始截取。end
可选,要截取的结束下标,但是不会取到end,如果省略则默认取到字符串最后的位置。- 大致的索引如下图:
subString(from,to)
- -截取字符串某个部分,并返回提取的部分。(这个和上面slice
的区别在于他的参数不能为负数)
from
必选,要截取的起始下标,是一个非负整数。to
可选,要截取的结束下标,是一个非负整数,如果省略则自动截取到字符串末尾。
substr(start,length)
- -截取字符串从strat
开始长度为length
的字符串
注意: (substr()
的参数指定的是子串的开始位置和长度,因此它可以替代substring()
和slice()
来使用。)
start
必选,要截取的起始下标,必须是数值。可以为负数。length
可选,要截取的长度,必须是数值。如果省略了该参数,那么直接从start开始到最后。
代码如下(示例):
{
let str = "java script";
console.log(str.slice(0,3)); // jav
console.log(str.slice(-5,-1)); // crip
console.log(str.substring(5,8)); // scr
console.log(str.substring(7)); // ript
console.log(str.substr(2,8)); // va scrip
console.log(str.substr(-5,3)); // cri
console.log(str.substr(3)); // a script
}
split(str,limit)
- - 可以将一个字符串用str
来分割成字符串数组
str
可选,分割的字符,如果省略则表示整个字符串一起分割。limit
可选,该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
代码如下(示例):
{
let str = "I am a teacher.";
console.log(str.split(''));
/*
['I', ' ', 'a', 'm',
' ', 'a', ' ', 't',
'e', 'a', 'c', 'h',
'e', 'r', '.']
*/
console.log(str.split(' ')); // [ 'I', 'am', 'a', 'teacher.' ]
console.log(str.split('a',1)); // [ 'I ' ]
}
还有很多其他方法这里就不一一说明了,其他的方法具体使用方法可以进菜鸟教程查看 。
方法 | 描述 |
---|---|
charAt() | 返回在指定位置的字符。 |
charCodeAt() | 返回在指定的位置的字符的 Unicode 编码。 |
concat() | 连接两个或更多字符串,并返回新的字符串。 |
fromCharCode() | 将 Unicode 编码转为字符。 |
indexOf() | 返回某个指定的字符串值在字符串中首次出现的位置。 |
includes() | 查找字符串中是否包含指定的子字符串。(ES6新增) |
lastIndexOf() | 从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。 |
match() | 查找找到一个或多个正则表达式的匹配。 |
repeat() | 复制字符串指定次数,并将它们连接在一起返回。(ES6新增) |
replace() | 在字符串中查找匹配的子串, 并替换与正则表达式匹配的子串。 |
search() | 查找与正则表达式相匹配的值。 |
slice() | 提取字符串的片断,并在新的字符串中返回被提取的部分。 |
split() | 把字符串分割为字符串数组。 |
startsWith() | 查看字符串是否以指定的子字符串开头。(ES6新增) |
endsWith() | 查看字符串是否以指定的子字符串结尾。(ES6新增) |
substr() | 从起始索引号提取字符串中指定数目的字符。 |
substring() | 提取字符串中两个指定的索引号之间的字符。 |
toLowerCase() | 把字符串转换为小写。 |
toUpperCase() | 把字符串转换为大写。 |
trim() | 去除字符串两边的空白 |
toLocaleLowerCase() | 根据本地主机的语言环境把字符串转换为小写。 |
toLocaleUpperCase() | 根据本地主机的语言环境把字符串转换为大写。 |
valueOf() | 返回某个字符串对象的原始值。 |
toString() | 返回一个字符串。 |
总结
此节主要讲了ES6布尔与Boolern,和字符串与String的基本使用方法和他们的常用方法