Javascript 无法读取';的属性';未定义

Javascript 无法读取';的属性';未定义,javascript,undefined,Javascript,Undefined,我是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(h

我是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
函数convertFromHex(十六进制){
var hex=hex.toString();//强制转换
var-str='';
对于(变量i=0;i对于(var i=0;i您应该向
convertToHex
函数传递一个字符串。如下所示:

console.log(convertToHex('42532'))

您没有将任何参数传递给
convertToHex
,该函数需要一个参数:

function convertToHex(str)
//                    ^^^
现在,当您像不传递参数那样调用该函数时,函数中的
str
将是
未定义的

因此,在这里:

for(var i=0; i < str.length; i++)
//                 ^^^^
for(变量i=0;i
undefined
没有
长度
控制台。log(convertToHex())
函数中需要一个参数


如果不添加参数,您将收到
无法在此处读取未定义的“error
的属性'length',因为JS不知道convertToHex必须做什么。

您将函数调用为console.log(convertToHex())如果不向函数传递任何参数,则函数不会收到未定义的值,并且不会对未定义的值执行.length操作str

用下面的代码检查

console.log(convertToHex('abcdef')) ;

console.log(convertToHex())
您调用的函数期望传递一个参数,但没有传递任何参数。您应该传递一个参数到test
console.log(convertToHex(“test”)
console.log(convertToHex('abcdef')) ;