我是javascript的入门者,但有一个问题,就是我的console.log无法输出我的函数的返回值。有人可以向我解释这个问题吗?感谢您的帮助!
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
答案 0 :(得分:2)
在
console.log(convertToHex())
您没有将任何参数传递给convertToHex
,并且该函数期望一个参数:
function convertToHex(str)
// ^^^
现在,当您像在不传递参数的情况下那样调用该函数时,该函数内的str
将是undefined
。
因此,在这里:
for(var i=0; i < str.length; i++)
// ^^^^
undefined
没有length
。
答案 1 :(得分:0)
您应该将字符串传递给convertToHex
函数。如:
console.log(convertToHex('42532'))
答案 2 :(得分:0)
console.log(convertToHex())
在您的函数中需要一个参数。
如果您不添加参数,则会在此处收到cannot read property 'length' of undefined" error
,因为JS不知道必须使用convertToHex。
答案 3 :(得分:0)
您以console.log(convertToHex())的形式调用该函数,其中您没有向该函数传递任何争论,因此该函数不会接收未定义的值,并且不会对未定义的值执行.length操作 str
检查以下代码
console.log(convertToHex('abcdef')) ;