晕乎乎又做了一遍,又发现两个问题,迷糊
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>节点练习</title>
</head>
<body>
<div id="wrap">
<ul id="list">
<li>第一个li</li>
<li>第二个li</li>
<li>第三个li</li>
</ul>
</div>
<script>
//在此处补充代码
var div=document.getElementById("wrap");
var oul=document.getElementById("list");
// var nul=document.createElement("ul");
var arr=["我能","我行","我可以"];
// var nli=null;
for(var i=0;i<3;i++){
var txt=document.createTextNode(arr[i]);
console.log(txt);
var nli=document.createElement("li");
var nul=document.createElement("ul");
nli.appendChild(txt);
nul.appendChild(nli);
}
console.log(nul);
div.replaceChild(nul,oul);
</script>
</body>
</html>
var nul=document.createElement("ul");这句话放在循环体里结果只出现一个,是因为每次都创建一个新的nul造成的吗,每次循环创建一个li和ul然后每次装填,造成一次一个的结果吗? 那为啥LI可以呢
在循环题外声明 var nli=null; 和在循环体里声明 var nli=document.createElement("li");感觉结果没啥区别,一个null一个undifined但结果都一样,我就糊涂什么时候,用什么,这个问题很纠结。
正在回答
同学你好,这两种写法的区别如下:
null可以表示一个空对象指针,假如一个变量想要在以后保存对象,但是目前还没有赋值,那么就可以先赋值为null。像视频中,就是在后面创建一个DOM元素(也可以叫DOM对象)把它赋值给了li,所以初始将li赋值为null会更好
var a这种写法,相当于声明了没有赋值,假如不确定这个变量以后保存的字符串还是数字,那么就不可以不用赋值,直接声明就可以了。
目前阶段,不用感到困扰,使用哪一个都是可以的。随着课程深入的学习,同学掌握的知识会越来愈多,知识体系也会增加,慢慢就会明白了。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星