• 我认为JS还可以改进的点


    曾经我一度在寻找JS的替代语言,尝试过CoffeeScript/TypeScript/Dart(都是浅尝)。不为什么原因,而是当你写的越多的JS,越觉得JS很多时候显得很操蛋。好在ES2015Babel出来了,也让我终止了寻找替代方案,安心的停留在了JavaScript本身。

    我并没有非常丰厚的多语言编程经验,但也有一丝想法,对于JavaScript来说。

    Array增加firstlast方法
    let arr = [1, 2, 3];
    arr.first(); //1
    arr.last(); //3
    

    当然用arr[0]arr[arr.length-1]也能够实现相同的效果,不过方案显得不够优雅


    [n...m]快速生成从nm的数字数组(可用于简洁的循环)
    let arr = [0...9];
    //等同于
    let arr2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    
    [0...9].map(n => console.log(n));
    

    提供快速检测对象属性是否存在的方法Object.isSet,这样就不必去做嵌套式的判断语句了,也不用担心抛出异常
    let a = {};
    
    if (Object.isSet(a.b.c.d)) {
    	//现在a.b.c.d能够安全的调用
    }
    
    //现在只能这样判断.d能否被安全调用
    if (a && a.b && a.b.c && a.b.c.d) {
    	//现在a.b.c.d能够被安全的调用
    }
    

    Date对象的toString方法提供输出指定格式的日期时间字符串
    let d = new Date();
    
    d.toString('yyyy-MM-dd'); //2016-01-01
    //hh 12小时制 HH 24小时制
    d.toString('hh:mm:ss'); //09:21:12
    d.toString('HH:mm:ss'); //21:21:12
    

    Date对象提供对年、月、日、分、秒的增减方法
    let d = new Date();
    //2016-01-01 09:20:20
    
    d.years(1); //2017-01-01 09:20:20
    d.years(-1); //2015-01-01 09:20:20
    
    d.months(1); //2016-02-01 09:20:20
    d.months(-1); //2015-12-01 09:20:20
    
    d.days(1); //2016-01-02 09:20:20
    d.days(-1); //2015-12-31 09:20:20
    
    d.minutes(1); //2016-01-01 09:21:20
    d.minutes(-1); //2016-01-01 09:19:20
    
    d.seconds(1); //2016-01-01 09:20:21
    d.seconds(-1); //2016-01-01 09:20:19
    
  • 相关阅读:
    C++--第25课
    C++--第24课
    C++--第23课
    C++--第22课
    C++--第21课
    C++--第20课
    C++--第19课
    C++--第18课
    C++--第17课
    Windows程序设计学习笔记(1):一个简单的windows程序
  • 原文地址:https://www.cnblogs.com/coffeedeveloper/p/5573576.html
Copyright © 2020-2023  润新知