乐趣区

es6学习总结二字符串和数字操作

字符串查找

ES6 还增加了字符串的查找功能,而且支持中文

es5 下的查找:indexof()

let jspang='技术';
let blog = '非常高兴你能看到这篇文章,我是你的老朋友技术。这节课我们学习字符串模版。';
document.write(blog.indexOf(jspang));

结果:20

es6 下的查找:include()

let jspang='技术';
let blog = '非常高兴你能看到这篇文章,我是你的老朋友技术。这节课我们学习字符串模版。';
document.write(blog.includes(jspang));

结果:true

判断开头是否存在 startsWith()

返回值是布尔类型

let jspang='技术胖';
let blog = '非常高兴你能看到这篇文章,我是你的老朋友技术胖。这节课我们学习字符串模版。';

blog.startsWith(jspang); //false

判断结尾是否存在 endsWith()

    let jspang='技术胖';
    let blog = '非常高兴你能看到这篇文章,我是你的老朋友技术胖。这节课我们学习字符串模版。';

    blog.endsWidth(jspang); //false

需要注意的是:starts 和 ends 后边都要加 s

字符串的子串识别

  • includes()方法,如果在字符串中检测到指定文本则返回 true,否则返回 false。
  • startsWith()方法,如果在字符串的其实部分检测到指定文本则返回 true,否则返回 false。
  • endsWhit() 方法,如果在字符串的结束部分检测到指定文本则返回 true,否则返回 false。

以上三个方法都可以接受两个参数:

  • 第一个参数指定要搜索的文本;
  • 第二个参数是可选的,指定一个开始的搜索位置。
  • 如果指定了第二个参数,则 includes 方法和 startsWith 方法会从这个缩影值开始匹配endsWith 这个方法则从这个索引值减去欲搜索文本的长度位置开始正向匹配,
  • 示例如下:

let msg = "hello world!";

// 判断
console.log(msg.includes('hello'));
// 判断结束
console.log(msg.endsWith('!'));
// 判断开始
console.log(msg.startsWith('h'));
console.log(msg.startsWith('0'));
console.log(msg.endsWith('world!'));
console.log(msg.includes('x'));

console.log(msg.startsWith('o',4));
console.log(msg.endsWith('o',8));
console.log(msg.includes('0',8));

输出结果

➜  ES6 练习 git:(master) ✗ node string.js
true
true
true
false
true
false

true
true
false

总结:当这 3 中方法都有两个参数的时候,都起的作用是查找功能,startsWith 和 endsWith 而不在是一定是开头或者结尾处存在才会是 ture,startsWith 这是第二参数是不是开头,而 endsWith 这是第二个参数减去欲搜索文本的长度位置开始正向匹配

repeat() 方法

es6 为字符串提供了一个 repeat 方法,接受一个 number 类型的参数,表示该字符串的重复次数,返回值是当前字符串重复一定的次数,示例如下:

console.log('x'.repeat(2));
console.log('hello'.repeat(3));

输出结果

xx
hellohellohello

ES6 数字操作

数字判断和转换

数字验证 Number.isFinite(xx)

判断是否为数字
可以使用 Number.isFinite()来进行数字验证,只要是数字,不论是浮点型还是整形都会返回 true,其他时候会返回 false。

let a= 11/4;
let b=11
let c=3.1475926
console.log(Number.isFinite(b)); //true
console.log(Number.isFinite(c));//true
console.log(Number.isFinite(a));//true
console.log(Number.isFinite('jspang'));//false
console.log(Number.isFinite(NaN));//false
console.log(Number.isFinite(undefined));//false

NaN 验证

NaN 是特殊的非数字,可以使用 Number.isNaN()来进行验证。下边的代码控制台返回了 true。

console.log(Number.isNaN(NaN));
console.log(NaN == NaN); //false
console.log(NaN === NaN);//false
console.log(isNaN(NaN));//true

判断是否为整数 Number.isInteger(xx)

let a=123.1;
console.log(Number.isInteger(a)); //false

整数转换 Number.parseInt(xxx)和浮点型转换 Number.parseFloat(xxx)

let a='9.18';
console.log(Number.parseInt(a));  //9
console.log(Number.parseFloat(a)); //9.18

整数取值范围操作

退出移动版