美文网首页
js高级程序设计阅读摘录5

js高级程序设计阅读摘录5

作者: day_day_up | 来源:发表于2017-10-16 15:00 被阅读0次

    num.toFixed()

    var num = 10.005;
    alert(num.toFixed(2)); //"10.01" 
    

    能够自动舍入的特性,使得 toFixed()方法很适合处理货币值。但需要注意的是,不同浏览器给这个方法设定的舍入规则可能会有所不同。在给 toFixed()传入 0 的情况下,IE8 及之前版本不能正确舍入范围{(-0.94,-0.5],[0.5,0.94)}之间的值。对于这个范围内的值,IE 会返回 0,而不是-1 或 1;其他浏览器都能返回正确的值。IE9 修复了这个问题。

    toExponential()

    var num = 99;
    alert(num.toPrecision(1)); //"1e+2"
    alert(num.toPrecision(2)); //"99"
    alert(num.toPrecision(3)); //"99.0" 
    

    String类型

    1. 字符方法 charAt() 和 charCodeAt()
    var stringValue = "hello world";
    alert(stringValue.charAt(1)); //"e"
    var stringValue = "hello world";
    alert(stringValue.charCodeAt(1)); // 输出"101"
    
    //使用方括号表示法访问个别字符的语法得到了 IE8 及 Firefox、Safari、Chrome 和 Opera 所有版本的
    支持。如果是在 IE7 及更早版本中使用这种语法,会返回 undefined 值
    var stringValue = "hello world";
    alert(stringValue[1]); //"e"
    

    2.slice() 、 substr() 和 substring()

    var stringValue = "hello world";
    alert(stringValue.slice(3)); //"lo world"
    alert(stringValue.substring(3)); //"lo world"
    alert(stringValue.substr(3)); //"lo world"
    alert(stringValue.slice(3, 7)); //"lo w"
    alert(stringValue.substring(3,7)); //"lo w"
    alert(stringValue.substr(3, 7)); //"lo worl"   //第2个参数不是结束位置是截取个数
    

    在传递给这些方法的参数是负值的情况下,它们的行为就不尽相同了。其中, slice() 方法会将传
    入的负值与字符串的长度相加, substr() 方法将负的第一个参数加上字符串的长度,而将负的第二个
    参数转换为 0。最后, substring() 方法会把所有负值参数都转换为 0。下面来看例子。

    var stringValue = "hello world";
    alert(stringValue.slice(-3)); //"rld"
    alert(stringValue.substring(-3)); //"hello world"
    alert(stringValue.substr(-3)); //"rld"
    alert(stringValue.slice(3, -4)); //"lo w"
    alert(stringValue.substring(3, -4)); //"hel"
    alert(stringValue.substr(3, -4)); //""
    

    当第二个参数是负值时,这三个方法的行为各不相同。 slice() 方法会把第二个参数转换为 7,这
    就相当于调用了 slice(3,7) ,因此返回 "lo w" 。 substring() 方法会把第二个参数转换为 0,使调
    用变成了 substring(3,0) ,而由于这个方法会将较小的数作为开始位置,将较大的数作为结束位置,

    因此最终相当于调用了 substring(0,3) 。 substr() 也会将第二个参数转换为 0,这也就意味着返回
    包含零个字符的字符串,也就是一个空字符串。

    1. 字符串位置方法 indexOf() 和 lastIndexOf()
    var stringValue = "hello world";
    alert(stringValue.indexOf("o")); //4
    alert(stringValue.lastIndexOf("o")); //7
    

    这两个方法都可以接收可选的第二个参数,表示从字符串中的哪个位置开始搜索。换句话说,
    indexOf() 会从该参数指定的位置向后搜索,忽略该位置之前的所有字符;而 lastIndexOf() 则会从
    指定的位置向前搜索,忽略该位置之后的所有字符。看下面的例子。

    var stringValue = "hello world";
    alert(stringValue.indexOf("o", 6)); //7
    alert(stringValue.lastIndexOf("o", 6)); //4
    

    4.字符串的模式匹配方法

    var text = "cat, bat, sat, fat";
    var pattern = /.at/;
    //与 pattern.exec(text)相同
    var matches = text.match(pattern);
    alert(matches.index); //0
    alert(matches[0]); //"cat"
    alert(pattern.lastIndex); //0
    

    search() 方法返回字符串中第一个匹配项的索引;如果没
    有找到匹配项,则返回 -1 。

    var text = "cat, bat, sat, fat";
    var pos = text.search(/at/);
    alert(pos); //1
    //这个例子中的 search() 方法返回 1 ,即 "at" 在字符串中第一次出现的位置。
    

    ECMAScript 提供了 replace() 方法。这个方法接受两个参数:第
    一个参数可以是一个 RegExp 对象或者一个字符串(这个字符串不会被转换成正则表达式),第二个参数可以是一个字符串或者一个函数。如果第一个参数是字符串,那么只会替换第一个子字符串。要想替换所有子字符串,唯一的办法就是提供一个正则表达式,而且要指定全局( g )标志,如下所示。

    var text = "cat, bat, sat, fat";
    var result = text.replace("at", "ond");
    alert(result); //"cond, bat, sat, fat"
    result = text.replace(/at/g, "ond");
    alert(result); //"cond, bond, sond, fond"
    

    相关文章

      网友评论

          本文标题:js高级程序设计阅读摘录5

          本文链接:https://www.haomeiwen.com/subject/yxmkuxtx.html