顶层内置对象

  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()不支持负数参数,不能倒着数,性能较好。
  • 总结
    顶层内置对象_第1张图片
    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 作用等价于方法名//获取方法本身,适用于匿名方法或者定义了名字但是访问不到【里外有同名的方法时】

  • 总结

    顶层内置对象_第2张图片
    非显示定义的Function对象.jpg

    Function拼接json字符串.jpg

    顶层内置对象_第3张图片
    Function严格模式.jpg

    顶层内置对象_第4张图片
    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

    顶层内置对象_第5张图片
    [$].png

    正则对象的方法

  • .test() :能否子串片段

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

    顶层内置对象_第6张图片
    exec.jpg

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

  • 支持正则表达式的** String 对象的方法**:
  1. .match(),返回匹配到的子串的数组,该数组的内容依赖于 regexp 是否具有全局标志 g。找不到则返回 null。
    顶层内置对象_第7张图片
    match.jpg
  2. .search(),返回下标,对大小写敏感
    返回第一个与 regexp 相匹配的子串的起始位置,找不到则返回 -1。
    search() 方法不执行全局匹配,它将忽略标志 g。它同时忽略 regexp 的 lastIndex 属性,不支持负数参数,不能倒着数,性能较好。
    顶层内置对象_第8张图片
    search.jpg
  3. .split(),返回数组,以匹配到的子串为分隔符,分隔出项
    ** stringObject.split(separator,howmany)**
    • 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
    • String.split() 执行的操作与 Array.join 执行的操作是相反的。
      顶层内置对象_第9张图片
      split.jpg
  4. .replace(),返回改变后的新字符串,原对象没变化,不能继续使用,支持i和g,找不到匹配项,原样返回。需要var newVar = oldVar.replace()来接收
    顶层内置对象_第10张图片
    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$/ 表示匹配一个数字加(跟上)一个$,加起来一起作为匹配规则

你可能感兴趣的:(顶层内置对象)