es6 字符串与数值的拓展

字符串的拓展:

es5提供了indexof方法,可返回某个指定的字符串值在字符串中首次出现的位置。而es6中则又新增了三个方法。

一:
1、includes方法返回一个布尔值,如果查询的字符在字符串中被找到了,返回true,否则返回false。

console.log('abcd'.includes('b')) //true  

2、startsWith方法用于判断某个字符是否在字符串的开头位置,是返回true,否则返回false

console.log('abcd'.startsWith('a')) //true

3、endsWith方法用于判断某个字符是否出现在字符串的结束位置,是返回true,否则返回false

console.log('abcd'.endsWith('d')) //true

这三个方法都接受第二个参数,表示开始搜索的位置

1、console.log('abcd'.includes('b',2)) //false  从c开始搜索,结果搜索不到b,返回false

2、console.log('abcd'.startsWith('b',1)) //true 从b开始搜索,相对于bcd来说,b处于开头位置,返回true

3、console.log('abcd'.endsWith('c',3)) //true 从d开始搜索,相对于abc来说,c处于结束位置,返回true

二:repeat方法
repeat方法返回一个新字符串,用于重复一个字符串。

console.log('a'.repeat(2)) //aa

三:padStart和padEnd方法,用于补全字符串。

1、padStart用于在字符串的前面补全字符串

console.log('x'.padStart(3,"b")) //bbx
console.log('x'.padEnd(3,"b")) //xbb

这个两个方法都接受两个参数,第二个参数用来指定字符串的长度,第二个参数用填充字符串。

2、如果字符串没有位置空缺,则返回原字符串
console.log(‘x’.padStart(1,“b”)) //x
console.log(‘x’.padEnd(1,“b”)) //x

3、如果用于填充的字符超过指定的长度,被截断
console.log(‘x’.padStart(3,“bbbbbbb”)) //bbx
console.log(‘x’.padEnd(3,“bbbbbbb”)) //xbb

4、如果不指定用于填充的字符串,将默认使用空格填充
console.log(‘x’.padStart(3)) // x
console.log(‘x’.padEnd(3)) //x

四:字符串模板

1、字符串模板提供极大的方便,用反引号``定义,在反引号中,可以方便地填入变量,使用换行,单引号或双引号。

let name = "小明"
let age = 18
console.log(`我的名字叫${name},
	        今年${18}岁,我的哥哥叫"关尼僻仕"`)

结果:
我的名字叫小明,
今年18岁,我的哥哥叫"关尼僻仕"

如果需要使用反引号,需要在反引号前面用反斜杆进行转义如:`

2、在字符串模板中,变量应当填写在${}当中,不仅是变量,还可以放入任意的表达式,可以运算,可以引用对象的属性,可以调用函数。

let obj = {
	a : 1,
	b : 2
}

function fn () {
	return "字符串模板真的很强大"
}

console.log(`obj的a+obj的b=${obj.a+obj.b},所以说,${fn()}`); //obj的a+obj的b=3,所以说,字符串模板真的很强大

3、字符串模板还能进行嵌套

console.log(字符串一${字符串二}); //字符串一字符串二

4、标签模板

function fn (a) {
	console.log(a)
}

fn `123`; //打印出123

标签模板其实是函数的一种特殊的调用形式,函数的参数就是跟在函数名后面的字符串模板。
所以 fn 123 可以看成是这样:fn(123)

当字符串模板中包含变量的时候,会从字符串模板中提取出多个参数。

let name = "小明"
let age = 18

function fn (arr,var1,var2) {
	console.log(arr) //["我叫", ",今年", "岁"]
	console.log(var1) //小明
	console.log(var2) //18
}

fn `我叫${name},今年${age}岁`; 

可以看到,字符串模板中的变量的值被依次传给var1,var2,而其他的字符串被包装成一个数组,传递给arr。
可以看成是这样fn([“我叫”, “,今年”, “岁”],‘小明’,18);

数值的拓展:

1、isNaN方法

console.log(Number.isNaN(NaN)) //true

与es5中的isNaN的区别在于,es5中的isNaN方法在遇到非数值的情况下,会先把非数值转为数值,再判断。而es6中的isNaN方法
对于非数值一律返回false,只对NaN返回true。

2、parseInt方法和parseFloat方法被从全局转移到了Number对象中。

因此,es5调用的方法是:

parseInt()
parseFloat()

es6的调用方法是:

Number.parseInt()
Number.parseFloat()

3、isInteger方法,用于判断一个值是否为整数。

console.log(Number.isInteger(25)) //true
console.log(Number.isInteger(25.0)) //true
console.log(Number.isInteger(25.1)) //false

4、Math.sign方法,判断一个数值是整数还是负数,或者是0。

console.log(Math.sign(10)) //1
console.log(Math.sign(-10)) //-1
console.log(Math.sign(0)) //0
console.log(Math.sign(-0)) //-0

其他值返回NaN。

猜你喜欢

转载自blog.csdn.net/weixin_40606003/article/details/83660724