首頁  >  問答  >  主體

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


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

传入参数:

拼接出来的查询字符串:

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

PHP中文网PHP中文网2726 天前838

全部回覆(3)我來回復

  • 阿神

    阿神2017-04-11 11:09:47

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

    回覆
    0
  • 迷茫

    迷茫2017-04-11 11:09:47

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-11 11:09:47

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

    回覆
    0
  • 取消回覆