我不明白为什么只有stFunction()
有效?为什么我在ndFunction()
出现了语法错误(意外标记“。”)以及rdFunction()
出了什么问题?谢谢你的帮助
function stFunction() {
var x = document.getElementById("id1");
x.value = x.value.toUpperCase();
}
function ndFunction() {
var y.value = document.getElementById("id2").value.toUpperCase();
}
function rdFunction() {
var y = {};
y.value = document.getElementById("id3").value.toUpperCase();
}
答案 0 :(得分:5)
您的ndFunction无效,因为当您尝试设置其属性时y不存在。至于rdFunction,只要你的元素存在并且有一个值就可以正常工作。
function ndFunction() {
var y = {},
y.value = document.getElementById("id2").value.toUpperCase();
}
答案 1 :(得分:1)
为什么我在
处收到语法错误(意外标记“。”)ndFunction()
当你写var y.value = document.getElementById("id2").value.toUpperCase();
时,
您实际上是在定义一个名为y.value
的变量,它不是一个有效的变量名称(https://mothereff.in/js-variables#y.value)。点是属性访问器,这就是为什么你得到语法错误意外令牌“。”。它正在尝试访问您之前未定义的变量value
的名为y
的属性。
和rdFunction()有什么问题?
rdFunction()
没有错。您正在使用object initializer创建名为y
的对象。然后,您将为此对象定义名为value
的属性,并且属性value
的值将为document.getElementById("id3").value.toUpperCase();
。在console.log(y)
结束时尝试rdFunction()
。你会发现一切正常。请注意,您也可以像这样定义属性value
var y = {};
y['value'] = document.getElementById("id3").value.toUpperCase();
答案 2 :(得分:0)
@Dontfeedthecode有重点。
如果stFunction
有效,则可以对stFunction
的{{1}}执行相同操作:D
在ndFunction:
ndFunction