js面试题,求大神解答!膜拜大神!

无敌至尊 2013-10-12 11:57:38
1、找出ID为“newsList”的HTML元素下的第一个节点,并将其移动到“newsList”的最后。
2、不使用中间变量,交换a = 'boolean', b = [0,1] 两个变量的值。
...全文
353 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
KK3K2005 2013-10-13
  • 打赏
  • 举报
回复
引用 8 楼 rui888 的回复:
[quote=引用 7 楼 foolbirdflyfirst 的回复:] var d = document.getElementById('newsList'); d.appendChild(d.firstChild);//firstChild为第一个nodeType为1的节点 a = [b,b=a][0]
a = [b,b=a][0] 这个很简介强大,放数组里交换。[/quote] good 学到一招
天际的海浪 2013-10-12
  • 打赏
  • 举报
回复
引用 11 楼 l676331991 的回复:
[quote=引用 10 楼 u011461314 的回复:] 第二个问题如果是这样回答的,那个出题的人也真够无聊的。菜菜一碟
对啊,不明白,注册个属性就不是中间变量了?使用字面量就不是中间变量了?按这样说:

b.push(a);  //借用了b的第三个元素
a = b;
b = a.pop(); 

b['temp'] = a;  //借用temp属性
a = b;
b = a['temp'];
delete a['temp']; //擦下屁股
7楼的方法和这个没区别:

temp = [b,a]; //借用了新数组
b = a;
a = temp[0];
倘若a、b都是数字,考考异或运算倒是显些水平,可惜一个是字符串,一个是数组。下面的代码才是真正的巧妙:

var a = 34, b= 89;
a = a + b;
b = a - b; // a+b-b=a
a = a - b; // a+b-a=b
异或的代码记都不用记,三个式子完全一样

var a = 31, b= 93;
a = a ^ b; //记住a=a^b,带入下式
b = a ^ b; //a^b^b = a
a = a ^ b; //a^b^a = b
[/quote] 不用任何中间量,这样算不算。觉得这题目出的没道理

var a = 'boolean', b = [0,1];
a = a+"`"+b;
b = a.replace(/`.*/,"");
a = a.replace(/.*`/,"").split(",");
alert(a);
alert(b);
l676331991 2013-10-12
  • 打赏
  • 举报
回复
引用 10 楼 u011461314 的回复:
第二个问题如果是这样回答的,那个出题的人也真够无聊的。菜菜一碟
对啊,不明白,注册个属性就不是中间变量了?使用字面量就不是中间变量了?按这样说:

b.push(a);  //借用了b的第三个元素
a = b;
b = a.pop(); 

b['temp'] = a;  //借用temp属性
a = b;
b = a['temp'];
delete a['temp']; //擦下屁股
7楼的方法和这个没区别:

temp = [b,a]; //借用了新数组
b = a;
a = temp[0];
倘若a、b都是数字,考考异或运算倒是显些水平,可惜一个是字符串,一个是数组。下面的代码才是真正的巧妙:

var a = 34, b= 89;
a = a + b;
b = a - b; // a+b-b=a
a = a - b; // a+b-a=b
异或的代码记都不用记,三个式子完全一样

var a = 31, b= 93;
a = a ^ b; //记住a=a^b,带入下式
b = a ^ b; //a^b^b = a
a = a ^ b; //a^b^a = b
zhjdg 2013-10-12
  • 打赏
  • 举报
回复
第二个问题如果是这样回答的,那个出题的人也真够无聊的。菜菜一碟
阿鱼 2013-10-12
  • 打赏
  • 举报
回复
顶下7楼的第二个方法
tony4geek 2013-10-12
  • 打赏
  • 举报
回复
引用 7 楼 foolbirdflyfirst 的回复:
var d = document.getElementById('newsList'); d.appendChild(d.firstChild);//firstChild为第一个nodeType为1的节点 a = [b,b=a][0]
a = [b,b=a][0] 这个很简介强大,放数组里交换。
foolbirdflyfirst 2013-10-12
  • 打赏
  • 举报
回复
var d = document.getElementById('newsList'); d.appendChild(d.firstChild);//firstChild为第一个nodeType为1的节点 a = [b,b=a][0]
未知数 2013-10-12
  • 打赏
  • 举报
回复
1. var el = document.getElementById('newsList').childNodes[0]; var pEl = el.parentNode; pEl.removeChild(el); pEl.appendChild(el); 2.方法很多,楼上的就可以 b.a = a; a = b; b = b.a; delete a.a;
天际的海浪 2013-10-12
  • 打赏
  • 举报
回复
<ul id="newsList">
	<li>a</li>
	<li>b</li>
	<li>c</li>
	<li>d</li>
</ul>
<script type="text/javascript">
var ul = document.getElementById("newsList");
ul.appendChild(ul.firstChild);
</script>
天际的海浪 2013-10-12
  • 打赏
  • 举报
回复
var a = 'boolean', b = [0,1]; b.a = a; a = b; b = a.a; delete a.a; alert(a); alert(b);
天际的海浪 2013-10-12
  • 打赏
  • 举报
回复
引用 2 楼 l0820206204 的回复:
“找出ID为“newsList”的HTML元素下的第一个节点,并将其移动到“newsList”的最后。”如果用纯粹的JS,该怎么实现呢?
var ul = document.getElementById("newsList"); ul.appendChild(ul.firstChild);
无敌至尊 2013-10-12
  • 打赏
  • 举报
回复
“找出ID为“newsList”的HTML元素下的第一个节点,并将其移动到“newsList”的最后。”如果用纯粹的JS,该怎么实现呢?
  • 打赏
  • 举报
回复

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
	$(function(){
		$("#newsList").children().eq(0).click(function(){//点击触发移动
			$(this).remove();
			$("#newsList").append($(this));
		});
	})
//题目2	
var a = 'boolean';
var b = [0,1];
a=[a,b];
b=a[0];
a=a[1];
alert(a);
alert(b); 
</script>

<div id="newsList">
	<p class="a">1</p>
	<p class="b">2</p>
	<p class="c">3</p>
</div>

87,915

社区成员

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

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