JS中数值型字符串拼接相加问题

js中+、+= 运算符既是算术运算符,也是字符串的连接符。如果使用时不小心很容易出现意想不到的结果,下面的代码就是一个典型的将数字按照字符串进行连接导致的问题。

问题代码:
下面的代码,当对应日期的月份大于等于10月,日期大于等于10日时,返回的日期格式不正确,如2020年10月10日返回的结果是2040,而不是20201010。JS中数值型字符串拼接相加问题_第1张图片
问题产生原因:
JS中+、+= 运算符既是算术运算符,也是字符串的连接符
解决方式:
末尾添加一个空字符串如下代码:

//时间格式
function getNowFormatDate() {
    var date = new Date();
    var seperator1 = "-";
    var seperator2 = ":";
    var month = date.getMonth() + 1;
    var strDate = date.getDate();
    if (month >= 1 && month <= 9) {
        month = "0" + month;
    }
    if (strDate >= 0 && strDate <= 9) {
        strDate = "0" + strDate;
    }
    //对如下代码进行了修改
    var currentdate = date.getFullYear() + month + strDate + "";
    return currentdate;
}   

扩展:
Js中链接字符串可以使用+ 如:s=’a’+’b’,最后s=’ab’;
在数值型计算中+还有运算符的意义,如s=1+2,最后s=3。
那么字符串和数值相加之和又是什么呢?Js会自动将数值型转换成字符串进行拼接。如下所示:
s=’a’+’b’,s=’ab’;
s=’a’+1,s=’a1’
s=1+1,s=2。

你可能感兴趣的:(JS中数值型字符串拼接相加问题)