Javascript 空变量和初始化变量之间的差异

Javascript 空变量和初始化变量之间的差异,javascript,callback,Javascript,Callback,我认为我的问题是错误的或没有意义的,就像我正在用更好的方式来提问一样 我正在学习javascript中的回调函数 const posts = [ {title: 'A', body: 'This is Body Of A'}, {title: 'B', body: 'This is Body Of B'}, {title: 'C', body: 'This is Body Of C'}, ] 我正在创建这些帖子:- function createPosts(post){

我认为我的问题是错误的或没有意义的,就像我正在用更好的方式来提问一样

我正在学习javascript中的回调函数

const posts = [
    {title: 'A', body: 'This is Body Of A'},
    {title: 'B', body: 'This is Body Of B'},
    {title: 'C', body: 'This is Body Of C'},
]
我正在创建这些帖子:-

function createPosts(post){
    setTimeout(function(){
        posts.push(post);
    },2000);
}
获取它们并在html上显示:

function getPosts(){
    setTimeout(function(){
        let output = ''
        posts.forEach(function(post){
            output += `<li>${post.title}</li>`
        });
        document.body.innerHTML = output;
    }, 1000);
}
函数getPosts(){ setTimeout(函数(){ 让输出=“” posts.forEach(功能(post){ 输出+=`
  • ${post.title}
  • ` }); document.body.innerHTML=输出; }, 1000); } 在“获取帖子”中,我将其设置为空,因为它列出了所有帖子标题, 如果我正在初始化输出,它只列出了一个

    function getPosts(){
        setTimeout(function(){
            let output;
            posts.forEach(function(post){
                output = `<li>${post.title}</li>`
            });
            document.body.innerHTML = output;
        }, 1000);
    }
    
    函数getPosts(){ setTimeout(函数(){ 让输出; posts.forEach(功能(post){ 输出=`
  • ${post.title}
  • ` }); document.body.innerHTML=输出; }, 1000); } 那么,生成空变量和初始化变量之间的区别是什么呢


    谢谢

    正如您所希望的那样,未来的值是字符串,因此在代码中使用空字符串作为初始值总是比在应用任何一种方法之前不需要检查要好得多,否则每次对变量使用string方法时都需要添加检查

    let str=''
    log(str.replace(/.*/g,'Hello'))
    让诺斯特;
    
    console.log(noStr.replace(/.*/g,'Hello'))
    区别在于字符串串联
    +=
    :请参阅
    字符串运算符部分

    下一行将把新的
    li
    项附加到
    输出

    output += `<li>${post.title}</li>`
    
    output = `<li>${post.title}</li>`