• ES6新语法之---字符串&数值扩展(6)


    这节课主要学习ES6中字符串和数值扩展,主要学习常用的方法。

    第一部分:字符串常用方法扩展

    1.includes()、startsWith()、endsWIth()

      ES6之前JavaScript只有indexof()方法,可以用来确定一个字符串是否包含在另一个字符串中,indexOf()方法返回值是数字

      ES6中提供了三种新的方法:

        includes: 返回布尔值,表示是否找到了参数字符串。

        startsWith():返回布尔值,表示是否以参数字符串开头。

        endsWith():返回布尔值,表示是否以参数字符串结尾。

      举例:判断字符串是否存在

        let s = 'Hello world!';
        s.indexOf('Hello')    // 0,返回值是数字,-1表示不存在,其他表示存在
        s.startsWith('Hello') // true
        s.endsWith('!') // true
        s.includes('o') // true

        第二参数表示开始查找的位置,注意startsWith和endsWith()区别

        let s = 'Hello world!';
    
        s.startsWith('world', 6) // true,从头开始计算
        s.endsWith('Hello', 5) // true,从尾开始计算
        s.includes('Hello', 6) // false

    2.repeat()方法

      repeat方法返回一个新字符串,表示将原字符串重复n次。

      参数为整数

        'x'.repeat(3) // "xxx"
        'hello'.repeat(2) // "hellohello"
        'na'.repeat(0) // 

      参数为小数,正数向下取整,负数向上取整:

        'na'.repeat(2.9) // "nana"
       'na'.repeat(-0.9) // "" -0.9,取整结果-0,repeat认为-0相当于0
    'na'.repeat(NaN) // "", NaN等同于0

      参数为字符串,repeat会先使用Number将字符串转为数字

        'na'.repeat('na') // ""
        'na'.repeat('3') // "nanana"

    第二部分:数值的扩展

    1.二进制和八进制表示法

      ES6提供了二进制和八进制数值的新的写法,分别用前缀0b(0B)和0o(0O)表示。

        0b111110111 === 503 // true
        0o767 === 503 // true

      从ES5开始,严格模式中,八进制就不再允许使用前缀0表示,ES6进一步明确必须使用0o表示。

      使用Number()方法将0b和0o前缀的字符串转为十进制。

        Number('0b111')  // 7
        Number('0o10')  // 8

    2.新增方法

      ES6为Number对象新增了很多更方便的方法

      <1>.全局方法改为Number的局部方法。

        Number.isFinite():判断一个数值是否是有限的。

        注意:参数类型不是Number类型,一律返回false

        Number.isFinite(15); // true
        Number.isFinite(0.8); // true
        Number.isFinite(NaN); // false
        Number.isFinite(Infinity); // false
        Number.isFinite(-Infinity); // false
        Number.isFinite('foo'); // false
        Number.isFinite('15'); // false
        Number.isFinite(true); // false

        Number.isNaN():用来检查一个值是否为NaN。

        注意:参数类型不是NaN,一律返回false。

        Number.isNaN(NaN) // true
        Number.isNaN(15) // false
        Number.isNaN('15') // false
        Number.isNaN(true) // false
        Number.isNaN(9/NaN) // true
        Number.isNaN('true' / 0) // true
        Number.isNaN('true' / 'true') // true

        Number.parseInt():用来将参数转为整数类型

        Number.parseFloat():用来将参数转为浮点数类型

        注意:参数为非数值类型,首先使用Number()将其转为数值类型,再进行转型操作。

        Number.parseInt('12.34') // 12
        Number.parseFloat('123.45#') // 123.45

      <2>.新增方法。

        Number.isInteger():判断一个数值是否为整数。

        注意:

          1.js中整数和浮点数存储方式相同,所以15和15.0是相等的。

          2.参数如果不是Number类型,一律返回false。

        Number.isInteger(15) // true
        Number.isInteger(15.0) // true

    3.Math对象的扩展

      <1>Math.trunc('参数'),用于去除一个数的小数部分,返回整数部分。

        注意:参数不为Number类型,Math.trunc()内部会使用Number方法将其转成Number类型再处理。

        //参数为数值类型
        Math.trunc(4.1) // 4
        Math.trunc(4.9) // 4
        Math.trunc(-4.1) // -4
        Math.trunc(-4.9) // -4
        Math.trunc(-0.1234) // -0
    
        //参数为非数值类型
        Math.trunc('123.456') // 123
        Math.trunc(true) //1
        Math.trunc(false) // 0
        Math.trunc(null) // 0

        对于空值和无法截取整数的值,返回NaN。

        Math.trunc(NaN);      // NaN
        Math.trunc('foo');    // NaN
        Math.trunc();         // NaN
        Math.trunc(undefined) // NaN

      <1>Math.sign('参数'),用来判断一个数到底是正数、负数、还是零。

        注意:对于参数为非数值,会先用Number处理参数再进行计算。

        返回值类型:

          参数为正:返回+1

          参数为负:返回-1

          参数为0:返回0

          参数为-0:返回-0

          其他值:返回NaN。

        //参数为Number类型
        Math.sign(-5) // -1
        Math.sign(5) // +1
        Math.sign(0) // +0
        Math.sign(-0) // -0
        Math.sign(NaN) // NaN
    
        //参数为非Number类型
        Math.sign('')  // 0
        Math.sign(true)  // +1
        Math.sign(false)  // 0
        Math.sign(null)  // 0
        Math.sign('9')  // +1
        Math.sign('foo')  // NaN
        Math.sign()  // NaN
        Math.sign(undefined)  // NaN

      

  • 相关阅读:
    XML操作类
    输入框样式总结
    根据计算机MAC地址限定每台机子只能领取一次账号
    ico图标的应用
    C#实现关机功能
    在sql中实现数组
    JSON
    MvcHtml.ActionLink()用法
    Brettle.Web.NeatUpload.dll 大文件上传
    asp.net 创建Access数据库
  • 原文地址:https://www.cnblogs.com/diweikang/p/9363425.html
Copyright © 2020-2023  润新知