奇怪的Javascript结果
Bizarre Javascript Result
本文关键字:结果 Javascript 更新时间:2023-09-26
根据我的理解,为什么这段代码在应该返回- -
的情况下却返回- null -
——它似乎将null
视为字符串。
var testvar = null;
alert(" - "+testvar+" - ");
就是这样。undefined
也是如此。我需要这样做,因为我有一个数组,我循环遍历数组,并将每个项添加到一个变量中,该变量是一个字符串。
我有这个:
//'resp' variable is a JSON response, decoded with JSON.parse. This part works fine.
var addOnEnd=null;
for (item in resp) {
console.log(">"+item);
addOnEnd += item+"'n";
}
console.log读取我所期望的内容——响应中所有项目的列表。
但是,如果我在for循环之后提醒(addOnEnd
),它会返回"undefined"(字面上是字符串),然后返回数组的其余部分。
我做错了什么?
将其更改为:
alert(" - " + (testvar || "") + " - ");
而这个。。。
addOnEnd += (item || "") + "'n";
您还需要将addOnEnd初始化为空字符串,而不是null
这样,如果该值未定义(作为布尔值计算时返回false),它将使用空字符串的"默认"值。
结果是正确的。您看到的是null
和undefined
的toString
值。
如果要替换一个空字符串,请执行该操作。
var testvar = null;
alert(" - "+ (testvar == null ? "" : testvar) +" - ");
和
var addOnEnd="";
for (item in resp) {
item = item == null ? "" : item;
console.log(">"+item, resp[item]);
addOnEnd += item+"'n";
}
当连接(添加)到字符串时,null值被强制为字符串"null"。你想要的就是这个。
var addOnEnd="";
for (item in resp) {
console.log(">"+item);
addOnEnd += item +"'n";
}
我怀疑问题出在您的数据上。
var testvar = null;
alert(" - "+testvar+" - ");
// RESULT "- null -" --> as expected.
var addOnEnd=null;
for (item in {key: "val1", key2: "val2"}) {
console.log(">"+item);
addOnEnd += item+"'n";
}
alert(addOnEnd)
//result (nullKey1'nKey2)
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- 数组删除重复结果Javascript
- 比较数组中的连续元素不会返回任何结果(javascript)
- split(' ') 函数没有给出正确的结果 Javascript
- 如何产生结果Javascript嵌套缺陷
- I'm试图使用onclick函数显示函数的结果.(javascript)
- 计算结果Javascript中不同数字的数量
- 以 HTML 格式显示计算结果 (javascript)
- 没有得到预期的结果 - javascript
- 从函数返回结果 - JavaScript
- 在一行中返回来自三元的结果(JavaScript)
- 骰子效果-如何在最后显示假结果和真结果(JavaScript)
- WebGL纹理加载结果(Javascript)类型错误
- 限制搜索结果Javascript
- IF语句多个答案-相同的结果Javascript
- 双异步循环,如何保证正确排序顺序的最终结果?(javascript)
- 添加图像到测验结果javascript
- 奇怪的结果javascript比较
- 如何改变iFrame结果JavaScript警告框