1. 类型检测

    • 类型检测优先使用 typeof。对象类型检测使用 instanceofnullundefined 的检测使用 == null
    // string
    typeof variable === 'string'
    // number
    typeof variable === 'number'
    // boolean
    typeof variable === 'boolean'
    // Function
    typeof variable === 'function'
    // Object
    typeof variable === 'object'
    // RegExp
    variable instanceof RegExp
    // Array
    variable instanceof Array
    // null
    variable === null
    // null or undefined
    variable == null
    // undefined
    typeof variable === 'undefined'
  2. 类型转换

    • 转换成 string 时,使用 + ''
    num + '';
    • 转换成 number 时,通常使用 +
    +str;
    • string 转换成 number,要转换的字符串结尾包含非数字并期望忽略时,使用 parseInt
    var width = '200px';
    parseInt(width, 10);
    • 使用 parseInt 时,必须指定进制。
    parseInt(str, 10);
    • 转换成 boolean 时,使用 !!
    var num = 3.14;
    !!num;
    • number 去除小数点,使用 Math.floor / Math.round / Math.ceil,不使用 parseInt
    var num = 3.14;
    Math.ceil(num);
  3. 其它

    • for in 遍历对象时, 使用 hasOwnProperty 过滤掉原型中的属性。
    var newInfo = {};
    for (var key in info) {
    if (info.hasOwnProperty(key)) {
    newInfo[key] = info[key];
    }
    }
    • 数组排序使用 sort
    function sortNumber(a,b) {
    return a - b
    }
    // 声明数组建议 var arr = []
    // 声明指定长度数组使用下面的方式
    var arr = new Array(6)
    arr[0] = "10"
    arr[1] = "5"
    arr[2] = "40"
    arr[3] = "25"
    arr[4] = "1000"
    arr[5] = "1"
    console.log(arr); // (6) ["10", "5", "40", "25", "1000", "1"]
    console.log(arr.sort(sortNumber)); // ["1", "5", "10", "25", "40", "1000"]
    • 类的继承方案,实现时需要修正 constructor
    /**
    *构建类之间的继承关系
    *@param {Function} subClass 子类函数
    *@param {Function} superClass 父类函数
    */
    var extend = function (subClass, superClass) {
    var F = function() {};
    F.prototype = superClass.prototype;
    subClass.prototype = new F();
    subClass.prototype.constructor = subClass;
    subClass.uber = C.prototype; // uber 是在模拟 class 时用来表示 super 的(因为super是关键字所以不能直接用)

 }

```

参考链接

最新文章

  1. Nginx学习记录
  2. php中ajax跨域请求---小记
  3. 谈谈 Mifare Classic 破解
  4. Eclipse使用jre的原理与配置
  5. eclipse,myeclipse svn 和jadclipse 反编译插件 及安装
  6. 在mac上安装hadoop伪分布式
  7. 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇01:播放序列动画》
  8. 【原】GO 语言常见错误
  9. Linux配置vpn
  10. Lucas定理的理解与应用
  11. HW2.17
  12. 进击的新版NavMesh系统:看我飞檐走壁
  13. AI xavier算法
  14. Shell编程实战
  15. Python设计模式 - UML - 组合结构图(Composite Structure Diagram)
  16. std::lock_guard/std::unique_lock
  17. axios的学习与使用
  18. Dalvik指令备忘
  19. MySQL USING 和 HAVING 用法
  20. JVM类加载机制总结

热门文章

  1. Luogu P1108 低价购买 DP
  2. Training set,Gallery set 和Probe set的区别
  3. Codeforces1114 D. Flood Fill (DP)(整个区间染成同色)
  4. HDU 6321 (状压dp)
  5. Bootstrap4 导航栏元素居右
  6. 【研究】struts2-045漏洞
  7. OPENROWSET read excel
  8. 信号和槽:Qt中最差劲的创造
  9. go语言解析网页利器goquery使用教程(爬虫必备)
  10. rockmongo配置文件config.php