node.js - JavaScript中字符串为何会莫名奇妙变成NaN?
PHP中文网
PHP中文网 2017-04-11 11:07:47
0
3
832


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

传入参数:

拼接出来的查询字符串:

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

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
阿神

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

迷茫

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

洪涛

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!