Javascript 无法读取';的属性';未定义
我是javascript的完全初学者,有一个问题,我的console.log不会输出函数的返回值。有人能给我解释一下这个问题吗?谢谢你的帮助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
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())
您调用的函数期望传递一个参数,但没有传递任何参数。您应该传递一个参数到testconsole.log(convertToHex(“test”)
console.log(convertToHex('abcdef')) ;