无法读取“...”的 属性 未定义
Cannot read property of '...' undefined
我是 javascript 的初学者,我的 console.log 无法输出函数的 return 值。有人可以向我解释这个问题吗?感谢您的帮助!
function convertFromHex(hex) {
var hex = hex.toString();//force conversion
var str = '';
for (var i = 0; i < hex.length; i += 2)
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
return str;
}
function convertToHex(str) {
var hex = '';
for(var i=0;i<str.length;i++) { // "cannot read property 'length' of undefined" error here
hex += ''+str.charCodeAt(i).toString(16);
}
return hex;
}
console.log(convertToHex()) // "cannot read property 'length' of undefined" error here
您应该将一个字符串传递给您的 convertToHex
函数。如:
console.log(convertToHex('42532'))
在
console.log(convertToHex())
您没有向 convertToHex
传递任何参数,而该函数 期望 一个参数:
function convertToHex(str)
// ^^^
现在,当您像不传递参数那样调用该函数时,函数内部的 str
将是 undefined
。
因此,这里:
for(var i=0; i < str.length; i++)
// ^^^^
undefined
没有 length
.
console.log(convertToHex())
函数中需要一个参数。
如果您不添加参数,您会在此处收到 cannot read property 'length' of undefined" error
,因为 JS 不知道什么必须转换为十六进制。
您将函数调用为 console.log(convertToHex()) ,其中您没有将任何参数传递给函数,因此该函数没有收到未定义的值,并且未对未定义的值执行 .length 操作str
用下面的代码检查
console.log(convertToHex('abcdef')) ;
我是 javascript 的初学者,我的 console.log 无法输出函数的 return 值。有人可以向我解释这个问题吗?感谢您的帮助!
function convertFromHex(hex) {
var hex = hex.toString();//force conversion
var str = '';
for (var i = 0; i < hex.length; i += 2)
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
return str;
}
function convertToHex(str) {
var hex = '';
for(var i=0;i<str.length;i++) { // "cannot read property 'length' of undefined" error here
hex += ''+str.charCodeAt(i).toString(16);
}
return hex;
}
console.log(convertToHex()) // "cannot read property 'length' of undefined" error here
您应该将一个字符串传递给您的 convertToHex
函数。如:
console.log(convertToHex('42532'))
在
console.log(convertToHex())
您没有向 convertToHex
传递任何参数,而该函数 期望 一个参数:
function convertToHex(str)
// ^^^
现在,当您像不传递参数那样调用该函数时,函数内部的 str
将是 undefined
。
因此,这里:
for(var i=0; i < str.length; i++)
// ^^^^
undefined
没有 length
.
console.log(convertToHex())
函数中需要一个参数。
如果您不添加参数,您会在此处收到 cannot read property 'length' of undefined" error
,因为 JS 不知道什么必须转换为十六进制。
您将函数调用为 console.log(convertToHex()) ,其中您没有将任何参数传递给函数,因此该函数没有收到未定义的值,并且未对未定义的值执行 .length 操作str
用下面的代码检查
console.log(convertToHex('abcdef')) ;