所以我有一些非常恼人的问题。我运行的函数基本上是这样的:
function printText(message){
console.log(message.length);
console.log(message);
console.log(message.length);
}
控制台日志中的输出是:
1
Hello World!
1
我知道值为1也是因为我稍后在if语句中测试它。下次我运行该函数时,它会给我正确的字符串长度。但不是第一次。
我通过对本地服务器的AJAX调用获取消息变量。我的意思是,消息看起来应该如此,它怎么能忘记这个属性?我什么都不懂。
JSON调用很有前瞻性:
$.getJSON(sendURL, function(data) {
printText(data.message);
});
此功能还有其他一些问题。这些字符串是正确的,因为我打印它们但它们的行为并不像它们应该的那样。但我甚至无法解释什么是错的,因为一切似乎都很好,但结果并不正确。
答案 0 :(得分:1)
输入参数message
作为数组传入。当它作为数组传递给printText()
方法时,数组的长度将为1.如果输入参数作为字符串或包含字符串的变量传入,则长度将为12。
在JSFiddle上查看此代码。打开控制台&运行。那么问题就会变得清晰!
function printText(message){
console.log(message.length);
console.log(message);
console.log(message.length);
}
console.log ('String Test');
printText('Hello World!'); // This will print string length = 12
console.log ('Variable Test');
let message = 'Hello World!';
printText(message); // This will print string length = 12
console.log ('Array Test');
message = ['Hello World!'];
printText(message); // This will print array length = 1
答案 1 :(得分:0)
将值转换为String并尝试获得如下长度:
console.log(String(message).length);