如图所示的函数,传入三个字符串,另外两个存到数据库中时都没有问题,只有brief会莫名其妙变成NaN,请问可能会是什么原因呢?
传入参数:
拼接出来的查询字符串:
如图,本应为"this is brief"的地方变成了NaN。
阿神2017-04-11 11:09:47
如果你不小心 写了类似(+'abc')这样的表达式。
这里js会把加号理解为“不改变正负号”的一元运算符,而不是你想要的“字符串连接”的二元运算符。
所以这里js会隐式的帮你把‘abc’转成数字类型,也就是NaN。
从截图上看,显然你多写了一个加号造成了这个问题。
之所以上面几个没出问题,那是因为上面几个本来就是数字类型,所以所以多个加号也无伤大雅,不过这也提醒你,在拼接字符串时最好还是工整一些,或者考虑使用一些模板方法,防止不小心写错的情形。同时,你这样SQL是拼出来的,而没有参数化,也有可能有SQL注入的潜在风险。