首页 > 解决方案 > 无法读取“...”的属性未定义

问题描述

我是一个完整的 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

标签: javascriptundefined

解决方案


console.log(convertToHex())

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

function convertToHex(str)
//                    ^^^

现在,当您像在不传递参数的情况下那样调用该函数时,函数str内部将是undefined.

因此,在这里:

for(var i=0; i < str.length; i++)
//                 ^^^^

undefined没有length


推荐阅读