新人求助解答

caoxianchuang 2021-05-19 10:21:49

为啥少了个var,运行结果不同
...全文
114 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
caoxianchuang 2021-05-19
  • 打赏
  • 举报
回复
第一张图就是不知道为啥最后w从11跳到2,求大佬解答下
文盲老顾 2021-05-19
  • 打赏
  • 举报
回复
变量应用范围不一样
  function q(b){
	  if (b.length<=1){
		  return b;
	  }else{
		  r=b.splice(parseInt(b.length/2),1);
		  var w=r[0];
		  left=[];
		  var right=[];
		  for(i=0;i<b.length;i++){
			  if(b[i]>w){
				  left.push(b[i])
			  }else{
				  right.push(b[i])
			  }
		  }
		  document.write('w<br/>')
		  document.write(w+'<br/>')
		  var result = q(left).concat(w,q(right))
		  document.write('w callback<br/>')
		  document.write(w+'<br/>')
		  return result;
	  }
  }
	document.write(q(a).join(','))
有var,变量在当前过程中生效,不与调用者混用 w 2 w 11 w callback 11 w callback 2 13,11,3,2,1
  var a=[1,3,2,11,13]
  function q(b){
	  if (b.length<=1){
		  return b;
	  }else{
		  r=b.splice(parseInt(b.length/2),1);
		  w=r[0];
		  left=[];
		  var right=[];
		  for(i=0;i<b.length;i++){
			  if(b[i]>w){
				  left.push(b[i])
			  }else{
				  right.push(b[i])
			  }
		  }
		  document.write('w<br/>')
		  document.write(w+'<br/>')
		  var result = q(left).concat(w,q(right))
		  document.write('w callback<br/>')
		  document.write(w+'<br/>')
		  return result;
	  }
  }
	document.write(q(a).join(','))
没有var,检测调用者是否有同名变量,如果有,则引用同名变量 w 2 w 11 w callback 11 w callback 11 13,11,3,11,1

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧