美文网首页
顶层内置对象

顶层内置对象

作者: 沿溪行 | 来源:发表于2015-07-02 11:34 被阅读0次
    1. Object
    • constructor
    • instanceof
    • prototype
    1. String
    • charAt(),返回指定下标的字符
      "429A3 809".charAt(3) //"A"
      "429A3 809".charAt(1) //"2"
    • charCodeAt(),返回指定下标的字符的Ascii编码
      "4293 809".charCodeAt(4) //32 空白的编码
      "4293 809".charCodeAt(3) //51 数字3的编码
      "429a3 809".charCodeAt(3) //97 字母a的编码
      "429A3 809".charCodeAt(3) //65 字母A的编码
      把对应位置的字符转成Ascii编码 , 小写字母从97开始 。
      空白是从32开始, 数字是从49开始,等等255之间的。但是中文都是大于256的。
    • indexof(""),返回从前向后搜索到的第一个子串的第一个字符的下标,找不见则返回-1,
      "Hello world world!".indexOf("world") //6
      判断能否找见用
      str.indexof() !==-1 //true ,能找见
    • lastIndexof("")
      "Hello world world!".lastIndexOf("world") //12
    • localeCompare()返回1,-1或者0 等价于,一般用 >和<
    • 正则相关的 replace(),search(),split(),后面会讲到
    • slice(-5)选择或者提取部分字符(负数代表倒着数),与substring()不支持负数参数,不能倒着数,性能较好。
    • 总结
      indexof.jpg
    1. Function
    • 调用fn方法本身
      fn.call(1,"a","b");
      fn.apply(1,["a","b"]);//只有两个参数的call().
      注意
      所有方法都是对象,都有构造方法;
      这些,这一类的对象都是Function的类型的对象所具有的方法。

    • .prototype.call()
      fn.length//参数的个数
      fn.name
      function s(){};s.name//"s"

    • arguments.callee 作用等价于方法名//获取方法本身,适用于匿名方法或者定义了名字但是访问不到【里外有同名的方法时】

    • 总结

      非显示定义的Function对象.jpg
      Function拼接json字符串.jpg
      Function严格模式.jpg
      callee.jpg
    1. Date

    Date的方法注意两点

    • getDay()和getMonth()的返回值
    • new Date()支持的参数格式有限。不提倡使用
      作业:对Date进行扩展。
    1. Array

    22ke 55;00min

    • pop()/push() ,

    • shift()/unshift(),

    • slice()/splice(),

    • sort()/reverse(),

    • join/concat()

      1. 取一个500到1000的随机数
        ( Math.random() * 500+500 ) | 0
        提示:
        【Math.random()返回0-1之间的小数,a | 0 是对a取整】

      2. ES5新增方法

      3. 类数组方法转换
        【使用以下方法类数组对象,就可以使用数组原型才有的方法】
        (function(){
        var arry = [].slice.call(arguments,0,2)
        console.log(arry.join("+"));
        })(1,2,3,4,5) // 1+2
        (function(){
        var arry = [].splice.call(arguments,0,arguments.length)
        console.log(arry.join("+"));
        })(1,2,3,4,5) // 1+2+3+4+5

    1. JS 顶层的类型对象 RegExp 正则表达式

    显式写法 : / /
    非显式 :new RegExp();

    • .test(),元字符和量词
      /a/.test("aaabec") // true 匹配到字符,找子串的
      * 任意个,
      ? 0个或者一个【没有/有一个】,
      + 大于等于1个【至少一个】,最常用的。
      /^a/ 以a开头,
      /a$/ 以a结尾,
      /^a$/ 以a开头,并且以a结尾
      需要转义的有
      /
      -
      方括号,表示找区间范围内的字符
      /[0-9]{5}/.test("11111sxdc") //true,找子串,5个连续数字组成的片段
      /[a-z]{5}/.test("11111sxdc") //false,找子串,5个连续字母组成的片段
      /[a-z0-9_-]{5}/.test("11111sxdc_--") //true,找子串
      /[a-z0-9_\u00ff]{5}/.test("11111sxdc_--") //false,找子串
      汉字有专门的正则,
      /[^\uFF00-\uFFFF]{5}/.test("我--") //false
      /[^\uFF00-\uFFFF]{5}/.test("我e34_--") //true
      【Unicode编码的开头,自己查】
      字符
      /\w{20}/.test("25235sddjs_7w72hh_") // \w代表单词字符,包括字母数字下划线.
      /[\w$]{20}/ //只要不是特殊的直接往后跟写,
      /[\w$\s]{20}/ // \s 元字符里叫空白, 包括空格,tab键
      \b //除字母数字下划线以外的都是,特点是啥也没有也叫\b,只有两边是。
      \b 元字符匹配单词边界。
      如果未找到匹配,则返回 null。
      提示:\b 元字符通常用于查找位于单词的开头或结尾的匹配。
      不应用于.test()
      正则一般是/^ $/,然后补上中间的内容,这样就是从头匹配到尾$表示结尾,^表示开头。但是若在[]$就代表一般字符,而^代表非区间
      /^\w+$/i.test("sdusu77273_") //true

      [$].png
      正则对象的方法
    • .test() :能否子串片段

    • .exec() :返回匹配到的子串的数组,每次执行只匹配一个作为数组返回,继续就匹配下一个,如果未找到匹配,则返回值为 null。
      /[^\w+$]/i.exec("sdusu77273_-$") //["-"]
      (/W3School/g).exec("Visit W3School, W3School is a place to study ");
      ["W3School"]

      exec.jpg

    注意
    循环,不写退出条件,会把浏览器搞挂的

    • 支持正则表达式的** String 对象的方法**:
    1. .match(),返回匹配到的子串的数组,该数组的内容依赖于 regexp 是否具有全局标志 g。找不到则返回 null。
      match.jpg
    2. .search(),返回下标,对大小写敏感
      返回第一个与 regexp 相匹配的子串的起始位置,找不到则返回 -1。
      search() 方法不执行全局匹配,它将忽略标志 g。它同时忽略 regexp 的 lastIndex 属性,不支持负数参数,不能倒着数,性能较好。
      search.jpg
    3. .split(),返回数组,以匹配到的子串为分隔符,分隔出项
      ** stringObject.split(separator,howmany)**
      • 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
      • String.split() 执行的操作与 Array.join 执行的操作是相反的。
        split.jpg
    4. .replace(),返回改变后的新字符串,原对象没变化,不能继续使用,支持i和g,找不到匹配项,原样返回。需要var newVar = oldVar.replace()来接收
      replace.jpg
      • 实例:返回时让每个数字都+1,要求只返回0到9。里面的k不是数字,变成数字用(k|0)
        name = 'a02aa b45bb cc89c';
        uw=name.replace(/\d/g, function(k){
        return (k+1) % 10;}
        );
        //"a11aa b11bb cc11c"
        name = 'a02aa b45bb cc89c';
        uw=name.replace(/\d/g, function(k){
        return ((k | 0)+1) % 10;}
        );
        //"a13aa b56bb cc90c"

      • 元字符的[]加与不加含义不同;只有一个元字符加不加不影响,
        /[\d$]/ 表示匹配一个数字或者一个$,
        /\d$/ 表示匹配一个数字加(跟上)一个$,加起来一起作为匹配规则

    相关文章

      网友评论

          本文标题:顶层内置对象

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