美文网首页
ES6 语法基础2--标准库

ES6 语法基础2--标准库

作者: Realank | 来源:发表于2018-08-02 08:59 被阅读12次

    4. 标准库

    a. Object对象

    JavaScript 原生提供Object对象
    JavaScript 的所有其他对象都继承自Object对象,即那些对象都是Object的实例。
    Object对象的原生方法分成两类:Object本身的方法与Object的实例方法。

    (1)Object对象本身的方法

    Object.print = function (o) { console.log(o) };
    

    (2)Object的实例方法

    Object.prototype.print = function () {
      console.log(this);
    };
    

    主要方法:

    Object.prototype.toString() 返回一个对象的字符串形式,默认情况下返回类型字符串。

    Object.prototype.hasOwnProperty() 接受一个字符串作为参数,返回一个布尔值,表示该实例对象自身是否具有该属性

    b. Array对象

    // bad
    let arr = new Array(1, 2);
    
    // good
    let arr = [1, 2];
    
    arr.length // 2
    
    Array.isArray(arr) // true
    
    arr.valueOf() // [1, 2]
    
    arr.toString() // “1, 2”
    
    添加删除元素
    arr.push(3) // [1, 2, 3]
    arr.pop() // 3
    arr // [1, 2]
    arr.shift() // 1
    arr // [2]
    a.unshift('x'); // 2 返回数组长度
    a // ['x', 2]
    
    连接移动
    ['a',, 'b'].join('-')
    // ‘a--b'
    
    ['hello'].concat(['world'], ['!'])
    // ["hello", "world", “!"]
    
    let a = ['a', 'b', 'c'];
    a.reverse() // ["c", "b", “a"] 原地修改
    a.slice(1, 2) // [“b"] 不修改原数组
    
    let a = ['a', 'b', 'c', 'd', 'e', 'f'];
    a.splice(4, 2) // ["e", “f"] 提取并修改原数组
    
    排序
    [4, 3, 2, 1].sort()
    // [1, 2, 3, 4]
    [
      { name: "张三", age: 30 },
      { name: "李四", age: 24 },
      { name: "王五", age: 28  }
    ].sort(function (o1, o2) {
      return o1.age - o2.age;
    })
    
    // [
    //   { name: "李四", age: 24 },
    //   { name: "王五", age: 28  },
    //   { name: "张三", age: 30 }
    // ]
    
    列举

    map() ****将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回

    let numbers = [1, 2, 3];
    numbers.map(function (n) {
      return n + 1;
    });
    
    // 返回[2, 3, 4] ,不影响原数组
    

    forEach() 与map方法很相似,但是参数方法不返回值,只用于遍历数组

    function log(element, index, array) {
      console.log('[' + index + '] = ' + element);
    }
    
    [2, 5, 9].forEach(log);
    
    // [0] = 2
    // [1] = 5
    // [2] = 9
    

    filter()用于过滤数组成员,满足条件的成员组成一个新数组返回

    [1, 2, 3, 4, 5].filter(function (elem) {
      return (elem > 3);
    })
    // [4, 5]
    

    reduce方法和reduceRight****方法依次处理数组的每个成员,最终累计为一个值。

    它们的差别是,reduce是从左到右处理,reduceRight则是从右到左,其他完全一样
    
    indexOf方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1
    
    ['a', 'b', 'c'].indexOf('a') //0
    
    填充
    new Array(3).fill(7)
    // [7, 7, 7]
    

    c.Number对象

    (10).toString() // “10"
    
    (10.005).toFixed(2) // “10.01" 将一个数转为指定位数的小数,然后返回这个小数对应的字符串
    
    (10).toExponential()  // “1e+1" 将一个数转为科学计数法形式
    
    (12.34).toPrecision(3) // “12.3" 将一个数转为指定位数的有效数字(用于四舍五入时不太可靠,跟浮点数不是精确储存有关)
    

    自定义方法

    Number.prototype.add = function (x) {
      return this + x;
    };
    
    8.add(2) // 10
    

    d. String对象

    let s = 'hello';
    s.length // 5
    'abc'[1] // "b"
    let one = 1;
    let two = 2;
    let three = ‘3';
    one + two + three // “33"
    'JavaScript'.slice(0, 4) // “Java"不改变原字符串
    'hello world'.indexOf('o') // 4
    '  hello world  '.trim()
    // "hello world” 不改变原字符串
    'Hello World'.toLowerCase()
    // "hello world"
    'Hello World'.toUpperCase()
    // "HELLO WORLD”
    
    'cat, bat, sat, fat'.match('at') // ["at"]
    'cat, bat, sat, fat'.match('xt') // null
    'cat, bat, sat, fat'.search('at') // 1 返回值为匹配的第一个位置
    
    'aaa'.replace('a', 'b') // “baa"
    
    'a|b|c'.split('|') // ["a", "b", "c"] 
    

    e. Math对象

    Math.PI:常数 Pi
    Math.abs():绝对值
    Math.ceil():向上取整
    Math.floor():向下取整
    Math.max():最大值
    Math.min():最小值
    Math.pow():指数运算
    Math.sqrt():平方根
    Math.log():自然对数
    Math.exp():e的指数
    Math.round():四舍五入
    Math.random():随机数
    

    f. Date对象

    new Date();
    // "Tue Dec 01 2015 09:34:43 GMT+0800 (CST)” 当前时间
    
    // 参数为时间零点开始计算的毫秒数
    new Date(1378218728000)
    // Tue Sep 03 2013 22:32:08 GMT+0800 (CST)
    
    // 参数为日期字符串
    new Date('January 6, 2013');
    // Sun Jan 06 2013 00:00:00 GMT+0800 (CST)
    
    // 参数为多个整数,
    // 代表年、月、日、小时、分钟、秒、毫秒
    new Date(2013, 0, 1, 0, 0, 0, 0)
    // Tue Jan 01 2013 00:00:00 GMT+0800 (CST)
    
    Date.now() // 1364026285194 Unix 时间戳乘以1000
    
    Date.parse() //用来解析日期字符串,返回 Unix 时间戳乘以1000
    
    let d = new Date();
    d.valueOf() // 1362790014817
    d.getTime() // 1362790014817
    d.toString()
    // "Tue Jan 01 2013 00:00:00 GMT+0800 (CST)”
    
    d.toUTCString()
    // "Mon, 31 Dec 2012 16:00:00 GMT”
    
    d.toUTCString()
    // "Mon, 31 Dec 2012 16:00:00 GMT”
    
    d.toJSON()
    // “2012-12-31T16:00:00.000Z”
    
    d.toDateString() 
    // "Tue Jan 01 2013”
    
    d.toTimeString() 
    // "00:00:00 GMT+0800 (CST)"
    
    d.toLocaleDateString()
    // 中文版浏览器为”2013年1月1日"
    
    d.toLocaleTimeString()
    // 中文版浏览器为”上午12:00:00"
    

    get类方法:

    getTime():返回实例距离1970年1月1日00:00:00的毫秒数,等同于valueOf方法。
    getDate():返回实例对象对应每个月的几号(从1开始)。
    getDay():返回星期几,星期日为0,星期一为1,以此类推。
    getYear():返回距离1900的年数。
    getFullYear():返回四位的年份。
    getMonth():返回月份(0表示1月,11表示12月)。
    getHours():返回小时(0-23)。
    getMilliseconds():返回毫秒(0-999)。
    getMinutes():返回分钟(0-59)。
    getSeconds():返回秒(0-59)。
    getTimezoneOffset():返回当前时间与 UTC 的时区差异,以分钟表示,返回结果考虑到了夏令时因素。
    

    set 类方法

    setDate(date):设置实例对象对应的每个月的几号(1-31),返回改变后毫秒时间戳。
    setYear(year): 设置距离1900年的年数。
    setFullYear(year [, month, date]):设置四位年份。
    setHours(hour [, min, sec, ms]):设置小时(0-23)。
    setMilliseconds():设置毫秒(0-999)。
    setMinutes(min [, sec, ms]):设置分钟(0-59)。
    setMonth(month [, date]):设置月份(0-11)。
    setSeconds(sec [, ms]):设置秒(0-59)。
    setTime(milliseconds):设置毫秒时间戳。
    

    g. regExp

    自行查阅:http://javascript.ruanyifeng.com/stdlib/regexp.html

    h. JSON对象

    JSON.stringify() 将一个值转为 JSON 字符串
    JSON.parse() 将 JSON 字符串转换成对应的值

    i. console对象

    console.log() 主要用这个打log
    console.info()
    console.debug()
    console.warn()
    console.error()
    console.assert()
    console.time(),console.timeEnd()
    console.trace()

    占位符:
    %s 字符串
    %d 整数
    %i 整数
    %f 浮点数
    %o 对象的链接
    %c CSS 格式字符串

    j. 属性描述对象

    自行查阅:http://javascript.ruanyifeng.com/stdlib/attributes.html

    相关文章

      网友评论

          本文标题:ES6 语法基础2--标准库

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