我是java脚本的新手。在Web浏览器的控制台中,我观察了以下内容。
"" - 1 + 0 = -1
"4" - 2 = 2
"4px" - 2 = NaN
" -9\n" - 5 = -14
我知道除了加法之外,在执行数学运算时,字符串将被转换为数字。在第3次操作中," 4px"由于" px"而不是有效数字。结果证明是NaN。但我不明白" -9 \ n"转换为-9即使" \ n'存在。
这可能是一个简单的问题。但我无法理解原因。如果我遗失任何东西,可以告诉我吗?
答案 0 :(得分:3)
\n
是换行符的转义序列。那是你按“Enter”键时得到的那个。
例如,\n
和cat
之间有一个dog
。
cat
dog
如果您执行" 9 " + 0
,则会获得9
,因为JavaScript会在转换为数字时忽略周围的空格。这里也是如此,因为换行符被认为是空格。
答案 1 :(得分:3)
我认为你刚刚发生了一个允许" -9 \ n"自动转换为数字。字符序列" \ n"代表大多数语言的换行符(包括Javascript),因此被视为空格。这也意味着" \ t"标签和" \ r"对于退货/换行,同样会被忽略。
> "-2\n" - 2
-4
> "-2\t" - 2
-4
> "-2\r" - 2
-4
但是,只要您使用不是空格(标签,换行符等)的转义序列的字母进行测试,或者删除转义的反斜杠,它就会被识别为字母并被评估为是NaN。
> "-2\a" - 2
NaN
> "-2n" - 2
NaN
答案 2 :(得分:0)
字符串中的'\ n'被许多编程语言(如果不是全部)理解为换行符。
这意味着什么?
如果您将\n
放入字符串中,例如:
var fruits = "apple \nbanana \norange"
console.log(fruits)
打印的最终结果如下所示:
apple
banana
orange
你可以找到大多数转义序列on this article on Wikipedia(不要担心它主要用于其他语言的标题)