Javascript 嵌套输入问题

Javascript 嵌套输入问题,javascript,nested-function,Javascript,Nested Function,为什么“未定义”会出现在我的文本顶部 function myname() { document.write('Im john doe '); } function myage() { myname(); document.write('Im 47 years old'); } document.querySelector('.test').innerHTML=myage(); 这是完整的代码 function myage(){ myname();

为什么“未定义”会出现在我的文本顶部

function myname() {
    document.write('Im john doe ');
}

function myage() {
    myname();
    document.write('Im 47 years old');
}
document.querySelector('.test').innerHTML=myage();
这是完整的代码

function myage(){
        myname();
        document.write('Im 47 years old')

    }
    document.querySelector('.test').innerHTML=myage()
在这种情况下,当您调用
myage()
时,它不会返回任何内容。因此,所选目标的innerHtml将一无所获


这就是它显示未定义的原因。

当浏览器处理HTML文档并遇到标记时,它需要在继续构建DOM之前执行。当您试图访问此时不可用的document.querySelector('.test')时,它给出了一个未定义的值。检查下面的代码,其中,在加载dom后,脚本在执行时不带out undefined


文件
函数myname(){
文件。写('imjohndoe')
}
函数myage(){
myname();
文件。写(‘我47岁’)
}
document.addEventListener(“DOMContentLoaded”,()=>{
document.querySelector('.test')。innerHTML=myage()
});
myAge()
不返回任何内容,因此隐式值将为“未定义”。