数字扩展

Number.isInteger()用来判断一个数值是否为整数。
如果对数据精度的要求较高,不建议使用Number.isInteger()判断一个数值是否为整数。
Math.trunc方法用于去除一个数的小数部分,返回整数部分。
Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。

2018/1/15 posted in  ECMA6

字符串的扩展

模板字符串
模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
原生提供trim方法去处空格

模板字符串中嵌入变量,需要将变量名写在${}之中。
模板字符串之中还能调用函数。

function fn() {
  return "Hello World";
}

`foo ${fn()} bar`
2018/1/15 posted in  ECMA6

变量的解构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。

数组解构和对象解构在业务开发中有很大的用处可以多思考一种代码的实现方式。

    function add([x, y]){
      return x + y;
    }    
    add([1, 2]); // 3    
  
    //参数x的默认值0, y的默认值是0 然后整个参数的默认值是{}
    //function move({x = 0, y = 0} = {})  参数是一个对象
    function move({x = 0, y = 0} = {}) {
      return [x, y];
    }
    
    move({x: 3, y: 8}); // [3, 8]
    move({x: 3}); // [3, 0]
    move({}); // [0, 0]
    move(); // [0, 0]
    
    //参数{x,y}的默认值是{x:0,y:0}
    //function move({x, y} = { x: 0, y: 0 }) {
    function move({x, y} = { x: 0, y: 0 }) {
      return [x, y];
    }
    
    move({x: 3, y: 8}); // [3, 8]
    move({x: 3}); // [3, undefined]
    move({}); // [undefined, undefined]
    move(); // [0, 0]
    
    //加载模块
    const { SourceMapConsumer, SourceNode } = require("source-map");
    //提取 JSON 数据
    let jsonData = {
      id: 42,
      status: "OK",
      data: [867, 5309]
    };
    
    let { id, status, data: number } = jsonData;   
    console.log(id, status, number);
    let { log, sin, cos } = Math;

2018/1/9 posted in  ECMA6