首页 > JavaScript中字符串为何会莫名奇妙变成NaN?

JavaScript中字符串为何会莫名奇妙变成NaN?


如图所示的函数,传入三个字符串,另外两个存到数据库中时都没有问题,只有brief会莫名其妙变成NaN,请问可能会是什么原因呢?

传入参数:

拼接出来的查询字符串:

如图,本应为"this is brief"的地方变成了NaN。


多了一个+ 一个+是拼接字符串,++的话就不一样了


如果你不小心 写了类似(+'abc')这样的表达式。
这里js会把加号理解为“不改变正负号”的一元运算符,而不是你想要的“字符串连接”的二元运算符。
所以这里js会隐式的帮你把‘abc’转成数字类型,也就是NaN。
从截图上看,显然你多写了一个加号造成了这个问题。
之所以上面几个没出问题,那是因为上面几个本来就是数字类型,所以所以多个加号也无伤大雅,不过这也提醒你,在拼接字符串时最好还是工整一些,或者考虑使用一些模板方法,防止不小心写错的情形。同时,你这样SQL是拼出来的,而没有参数化,也有可能有SQL注入的潜在风险。


NaN是not a number的意思。 检查一下你的运算 是否出错了

【热门文章】
【热门文章】