Skip to content

Latest commit

 

History

History
25 lines (21 loc) · 982 Bytes

treat-undefined-as-no-value.md

File metadata and controls

25 lines (21 loc) · 982 Bytes

undefined看做"没有值"

// 我们应该判断参数是否是undefined来决定是否使用默认值
function Element(width, height) {
    this.width = width === undefined ? 100 : width;
    this.height = height === undefined ? 100 : height;
}

var ele = new Element();
console.log(ele); // Element { width: 100, height: 100 }
var ele1 = new Element(20);
console.log(ele1); // Element { width: 20, height: 100 }
var ele2 = new Element(20, 30);
console.log(ele2); // Element { width: 20, height: 30 }

源码


谨记

  • 避免使用undefined表示任何非特定值。
  • 使用描述性的字符串值或命名布尔属性的对象,而不要使用undefinednull来表示特定应用标志。
  • 提供参数默认值应当采用测试undefined的方式,而不是检查arguments.length
  • 在允许0,NaN或空字符串为有效参数的地方,绝不要通过真值测试来实现参数默认值。