zoukankan      html  css  js  c++  java
  • JS代码整洁随笔

    // 之前都是这么写:使用undefined和null来检测一个属性是否存在
    if (obj['name'] !== undefined) {
        console.log('name属性存在'); // 若obj.name为undefined时则会导致判断出错
    }
    
    if (obj['name'] !== null) {
        console.log('name属性存在'); // 若obj.name为null时则会导致判断出错
    }
    
    // 推荐的写法:使用in运算符来检测对象属性是否存在,使用hasOwnProperty方法来检测不包含原型链上的对象属性是否存在
    if ('name' in obj) {
        console.log('name属性存在');
    }
    
    if (obj.hasOwnProperty('name')) {
        console.log('name属性存在');
    }
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------
     
    // 不推荐的写法:==和!=比较时会进行类型转换,应尽量避免使用
    var num = 123;
    
    if (num == '123') {
        console.log(num);
    } else if (num != '321') {
        console.log('321');
    }
    
    // 推荐的写法:使用===和!==来进行比较
    var num = 123;
    
    if (num === '123') {
        console.log(num);
    } else if (num !== '321') {
        console.log('321');
    }
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------

    // 不推荐的写法:用typeof来判断构造函数创建的对象
    var str = new String('劳卜'); 
    
    console.log(typeof str); // 'object'
    
    // 推荐的写法:用instanceof来判断构造函数创建的对象
    var str = new String('劳卜'); 
    
    console.log(str instanceof String); // true
     
  • 相关阅读:
    HTML5基础
    行为类型11-11:状态模式(State Pattern)
    行为类型11-10:中介者模式(MediatorPattern)
    行为类型11-9:责任链模式(Chain of Responsibility Pattern)
    行为类型11-8:模板模式(Template Pattern)
    行为类型11-7:命令模式(Command Pattern)
    行为类型11-6:解释器模式(Interpreter Pattern)
    FTP 连接失败,防火墙端口设置
    Windows下 NodeJs 版本管理 Nvm
    Ubuntu vi 方向键不正常问题
  • 原文地址:https://www.cnblogs.com/chuanqiMa/p/6496495.html
Copyright © 2011-2022 走看看