js 赋值问题

function k(v){
    let s = '';
    if(v !== '') {
        s = v;
    } else {
        v = s;
    }
    
    console.log(s); // 第一次是2,之后都是空
    
    k('');

}
k(2);

如何才能之后输出的都是2

阅读 2.3k
3 个回答
    {
      let s = '';  //放外面
      function k(v) {
        if (v !== '') {
          s = v;
        } else {
          v = s;
        }

        console.log(s); 

        k('');

      }
    }

    k(2);
function k(v){
    let s = '';
    if(v !== '') {
        s = v;
    } else {
        v = s;
    }
    
    console.log(s); // 第一次是2,之后都是空
    
    k('');

}

k(2); 这里执行函数

执行到内部 v的值是2;s = '';
执行赋值: s = 2;
再执行函数 k('');
执行到内部 v的值是'' s的值也是 '';
执行赋值 v = s v和 s 都是 '';
死循环递归 v = s v和 s 都是 '';

let arr = [];

function k(v) {
    arr.push(v);
    let s = '';
    if (arr[0] !== '') {

        s = arr[0];
    } else {
        arr[0] = s;
    }

    console.log(s); // 第一次是2,之后都是空

    k('');

}
k(2);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题