es6 字符串扩展&&数值扩展

字符串新增方法

如何判断字符s是在字符huasheng中呢

let str = 'huasheng';//es5中通过序列号判断在不在当前字符串当中
console.log(str.indexOf('s')===-1);

如果是true是不在指定字符中,如果false是在指定字符当中

indexOf方法是查看指定字符在字符串中的序列号,如果不在字符串中那就是-1(默认不在当前指定字符的位置)

在这里插入图片描述false表示在当前指定的字符串当中

 let str = 'huasheng';
 console.log(str.includes('s')); //includes是包括包含的意思,查看str包不包含字符s

在这里插入图片描述

 let str = 'huasheng';
console.log(str.includes('s',1));

这个表示从索引1这个位置,开始查看有没有字符s,第二个参数默认就是0,从索引0项开始查看字符s

判断字符串中有没有指定字符 ,str.includes(指定字符,索引位置) 从指定索引位置查看有没有指定字符(这个记一下)

  • 如果返回值是true 说明指定字符在str
  • 如果返回值是false 说明指定字符不在str
let str = 'huasheng';
console.log(str.startsWith('h'));//当前字符串是以h开头的结果是true
console.log(str.startsWith('u'));//当前字符串不是以u开头的结果是false
console.log(str.startsWith('huasheng'));//当前字符串是以huasheng开头的结果是true
console.log(str.startsWith('huag'));//当前字符串不是以huag开头的结果是false

在这里插入图片描述
你只要确保指定开头的字符是和字符串开头的字符是一致即可(可以匹配多个但是一定要保证一致)

str.startsWith(指定字符,索引位置) 判断str是否以指定字符串开头

  • 如果是以指定字符开头,那么返回值是true
  • 如果不是以指定字符开头,那么返回值是false
let str = 'huasheng';
console.log(str.endsWith('g'));//他是以字符g结尾的,返回结果是true
console.log(str.endsWith('h'));//他不是以字符h结尾的,返回结果是false
console.log(str.endsWith('huasheng'));//他是以字符huasheng结尾的,返回结果是true

在这里插入图片描述
你只要确保指定结尾的字符是和字符串结尾的字符是一致即可(可以匹配多个但是一定要保证一致)

str.endsWith(指定字符,索引位置) 判断str是否以指定字符串结尾

  • 如果是以指定字符结尾,那么返回值是true
  • 如果不是以指定字符结尾,那么返回值是false
let str = 'huasheng';
console.log(str.includes('u',1));
//表示是从索引1这个位置,开始有字符u表示true反之是false
console.log(str.startsWith('u',1));
//表示是从索引1这个位置开始,检查是不是字符u开头是表示true不是表示false
console.log(str.endsWith('g',8));
//表示是从索引1这个位置开始,检查是不是字符g结尾是表示true不是表示false

在这里插入图片描述
以上三个函数都支持第二个参数n, 表示从索引n开始检索字符串

 let str = 'huasheng';
  console.log(str.repeat(3));//repeat表示重复的意思,让当前字符串重复3次

在这里插入图片描述
str.repeat(n) 返回的是一个把str重复n次的新字符串

 let str1 = 'x';
  console.log(str1.padStart(4,'a'));
  //pad其实是padding的简写 其实他原本的意义叫做填充

在这里插入图片描述
第一次参数是length表示填充,str字符串length有多长

第二个参数指定字符,用a填使得最终str长度是4(从前面字符x开始填到指定字符的length)

let str1 = 'x';
console.log(str1.padStart(4,'huasheng'));
//他会用前面的字符填充所需的length的长度
console.log(str1.padStart(4))
//第二个参数不写着是用空格来填充当前字符属性的length的长度
console.log(str1.padStart(4,''));
//个参数是''表示用没有填充还是原本的字符

在这里插入图片描述
str.padStart(length,指定字符串)用指定字符串从str前面把str填充到指定的length

console.log(str1.padEnd(5,'b'));
//从后面开始填充字符,用字符'b'开始填充到字符length长度,让字符串最终length长度是5

在这里插入图片描述
str.padEnd(length,指定字符串) 用指定字符串从str后面把str填充到指定的length

模板字符串

  • es5在处理字符串的不足:多行字符串,只能使用+号拼接
  • es6使用模板字符串解决了这个问题
 var str = 'huasheng';//当前这个是单行字符串
 var str = 'dbdh
        widhcsaic
   ';//不能用''来包裹着多行字符串的否则会报错

es5两个''单引号,他只能包裹着不换行的字符串(单行字符串)''或者""只能存放着单行字符串,如果想多行那么就会报错(es5不行那么我es6来解决)

在这里插入图片描述
那么就可以用es6的模板字符串来解决这个问题

ar str = `我是
       时食醋华cdfvb
 `;//``这个叫做模板字符串
  console.log(str);

这就是es6新增的模板字符串的好处(新增的方式),这种方式的好处他可以保留里面的空格和换行,都是可以的依然让字符串有效

在这里插入图片描述
模板字符串的用处

 let {name,age} = {name:'huasheng',age:28};
 //这个是对象的解构赋值声明变量name存储值huasheng,声明了变量age存储值28
 let str =  '我的名字' + name + ',年龄' + age;
 console.log(str)

这是es5的字符串拼接,当你一个字符串想拼到一个变量的话你得要用+号.

当前字符串的拼接是有点麻烦的,现在只是拼接了两个变量,那么如果你要拼接多个变量呢,那就会很麻烦变量拼接过多,有可以拼错的可能性(字符串拼接很容易出错的)

用模板字符串来实现字符串和变量拼接的效果

let {name,age} = {name:'huasheng',age:28};
let str = `我的名字是${name},年龄是${age}`;
 console.log(str)

当你需要在``模板字符串中使用变量的时候不需要拼接了,现在只要用${变量}就可以了这样的话比较简单

模板字符串的特点

  • 字符串中的空格和缩进会被保存在字符串中
  • 字符串中如果需要嵌入变量,直接在字符串中写${变量名}就可以了

数字的新增方法

如何让一个数字,转换成二进制,八进制,十六机制的数呢??

8进制数字的写法

let num = 085;//数字前面加0,表示10是8进制的10 1*8^1 + 0*8^0 = 8
console.log(num);

转换成八进制:系数先看第一个是1就是1*8 ^ 1 在加上后面的系数0就是0*8^ 0,那就是等于8
在这里插入图片描述

let num = 019;
console.log(num); 

在8进制中只有(0 1 2 3 4 5 6 7 8)8个数字,如果写019转换成八进制的话,那么不会转换成8进制的他会默认转换成十进制
在这里插入图片描述
2进制数字的写法

let num = 0b10;//数字前面加0b表示二进制的数字 1*2^1 + 0*2^0 = 2
console.log(num); 

在这里插入图片描述

let num = 0b1010;//数字前面加0b表示二进制的数字 1*2^3 + 0*2^2 + 1*2^1 + 0*2^1 = 10
console.log(num); 

在这里插入图片描述
在二进制中只有(0 1)2个数字,如果写019转换成二进制的话,那么他会报错

16进制数字的写法

let num = 0x10;//数字前面加0x表示十六进制的数字,结果就是16
console.log(num); 

在这里插入图片描述
Number.isNaN(数字)判断数字是否是NaN

console.log(window.isNaN(NaN));NaN表示true,在es5中是判断一个数字是不是NaN
在这里插入图片描述

onsole.log(window.isNaN);
console.log(window.isNaN===isNaN);

这两个是一个东西,结果是true
isNaN是这个函数也是自动挂在全局window对象当中的

在这里插入图片描述
console.log(window.isNaN===Number.isNaN);当然不等于,一个是挂在全局window对象上面的属性,一个是Number构造函数内置的函数,结果是false表示不相等
在这里插入图片描述
console.log(Number.isNaN('d'));表示false不是一个NaN
在这里插入图片描述
Number.isNaN(数字) 判断数字是否是NaN 注:在判断其他数据类型时不会类型转换

  • 如果使用Number.isNaN判断出来的结果是,true的话表示是一个NaN
  • 如果使用Number.isNaN判断出来的结果是,false的话表示不是一个NaN

Number.isFinite(数字) 判断数字是否是有限的

console.log(Number.isFinite(2));打印结果是true

console.log(Number.isFinite(Math.PI));打印结果是true,在数学中π是无限的,但是在JS中π就是有限小数了(3.141592653589793)

在这里插入图片描述
console.log(typeof Infinity);检查结果是number表示是一个数字,他是一个关键词,是一个数字表示无限数字( 表示正无穷)

console.log(Number.isFinite(Infinity));打印结果是false表示Infinity(正无穷关键词是无限数字)

console.log(Number.isFinite(-Infinity));打印结果是false表示-Infinity(关键词是负无穷)
在这里插入图片描述

  • Infinity 这个关键词 表示正无穷 (这个要记)
  • -Infinity 表示负无穷 (这个要记)

Number.isInteger(数字) 判断数字是不是整数

 console.log(Number.isInteger(1.23));//false表示不是一个整数
 console.log(Number.isInteger(1));//true表示是一个整数

Number.isInteger(数字) 判断数字是不是整数 注:在判断其他数据类型时不会类型转换

  • 如果返回结果是true,那么就是整数
  • 如果返回结果是false,那么就不是整数
    在这里插入图片描述

Number.parseInt(数字)parseInt方法一样

Number.parseFloat(数字)parseFloat方法一样

parseInt和parseFloat函数方法

Math对象的新增方法

Math.trunc(数字) 用于去除数字中的小数,返回整数部分

console.log(Math.trunc(1.123)); 打印1,去处小数的小数位/得到小数的整数位(不写数字这值是NaN)

在这里插入图片描述
Math.sign(数字) 用于判断数字是否是正数,负数或者0

  console.log(Math.sign(234));//数字是正数		返回1
  console.log(Math.sign(-45));//数字是负数		返回-1
  console.log(Math.sign(0));//数字是0		返回0
  console.log(Math.sign(-0));//数字是-0		返回-0
  console.log(Math.sign('sdf'));//其他数字		返回NaN

在这里插入图片描述
12.234这是一个小数,那么我怎么才能得到这个小数呢

 console.log(~~12.234)//打印12

~~数字 返回小数的整数部分
在这里插入图片描述
Math.cbrt(数字) 计算数字的立方根在这里插入代码片

console.log(Math.cbrt(27));//打印3

在这里插入图片描述
Math.hypot(数字1,数字2,…) 计算每个实参的平方和的平方根(这个要记)

 console.log(Math.hypot(3,4));//打印5
 //勾股定理 (90°)
 //勾股数 3 4 5  
 //如果你知道直角边3 也知道直角边4 
 //那么你们另一个数是5(斜边是5)知道两个斜角边等到一个斜角边

在这里插入图片描述
指数运算符

//x ** y		x的y次方
console.log(2**3);//这个表示2的3次方
console.log(27**(1/3))//这个表示27的1/3次方

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值