JavaScript可以定义数组类型,没有所谓的List类型。
JavaScript也没有必要存在List类型。JAVA的List类型是为了解决数组长度不可变的问题,但JavaScript不存在从这个问题。JavaScript的数组长度可变,并有非常多且实用的方法可使用,比JAVA的数组灵活的多,JAVA的List的大部分功能,JavaScript的数组也都有。
JavaScript的数组的定义方法有以下几种:
var arr = []//定义一个空数组
var arr = [1,2,3]//定义一个带元素的数组
var arr = new Array()//定义一个空数组,啰嗦的写法
var arr = new Array(5)//定义一个长度为5的数组,容易误导人,非常不建议的一种写法
扩展阅读:数组对象的方法concat() 连接两个或更多的数组,并返回结果。
copyWithin() 从数组的指定位置拷贝元素到数组的另一个指定位置中。
entries() 返回数组的可迭代对象。
every() 检测数值元素的每个元素是否都符合条件。
fill() 使用一个固定值来填充数组。
filter() 检测数值元素,并返回符合条件所有元素的数组。
find() 返回符合传入测试(函数)条件的数组元素。
findIndex() 返回符合传入测试(函数)条件的数组元素索引。
forEach() 数组每个元素都执行一次回调函数。
from() 通过给定的对象中创建一个数组。
includes() 判断一个数组是否包含一个指定的值。
indexOf() 搜索数组中的元素,并返回它所在的位置。
isArray() 判断对象是否为数组。
join() 把数组的所有元素放入一个字符串。
keys() 返回数组的可迭代对象,包含原始数组的键(key)。
lastIndexOf() 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
map() 通过指定函数处理数组的每个元素,并返回处理后的数组。
pop() 删除数组的最后一个元素并返回删除的元素。
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
reduce() 将数组元素计算为一个值(从左到右)。
reduceRight() 将数组元素计算为一个值(从右到左)。
reverse() 反转数组的元素顺序。
shift() 删除并返回数组的第一个元素。
slice() 选取数组的的一部分,并返回一个新数组。
some() 检测数组元素中是否有元素符合指定条件。
sort() 对数组的元素进行排序。
splice() 从数组中添加或删除元素。
toString() 把数组转换为字符串,并返回结果。
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
valueOf() 返回数组对象的原始值
很简单的一个使用:点击菜单,能够显示下面的或者不显示
1,主要目的:: 展现的是的一个菜单项,然后点击一下,隐藏,点一下,弹出下面的内容
用到的是 overflow:hidden 和 overflow="visible"这两个属性 在点击的function中,设置属性应该node.style.overflow="visible"当然设置tr的高度也是很重要的,要恰好让其他的选项隐蔽。
2,采用同样的技术,多加几个,但是就是传参数比较麻烦,采用this传参很常用
具体代码如下。
<!DOCTYPE html>
<html>
<head>
<!-- 1,主要目的:: 展现的是的一个菜单项,然后点击一下,隐藏,点一下,弹出下面的内容
用到的是 overflow:hidden 和 overflow="visible"这两个属性 在点击的function中,设置属性应该
node.style.overflow="visible"
2,采用同样的技术,多加几个,但是就是传参数比较麻烦
-->
<title>list.html</title>
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<style type="text/css">
dl{
height:18px/*优先级问题,必须要写*/
overflow:hidden
}
dd{
margin:0px
padding:0px
}
.close{
height:18px/*优先级问题,必须要写*/
overflow:hidden
}
.open{
height:80px
overflow:visible
background-color:#ff8000
}
</style>
<script type="text/javascript">
function click2(node1){
// alert("aa"+node.nodeName)// td
var nodes=node1.parentNode
// alert(nodes.nodeName)
// alert("aa"+nodes.className)
//※※通过传进的对象 判断采用哪种css模式
if(nodes.className=="open"){
nodes.className="close"
}else{
nodes.className="open"
}
}
</script>
</head>
<body>
<!--层次列表-->
<!--当很多时候采用传参就很麻烦,每个都需要去传参
<dl>
<dt onclick="click1(0)">菜单条1</dt>
<dd>菜单1</dd>
<dd>菜单2</dd>
<dd>菜单3</dd>
<dd>菜单4</dd>
</dl>
<dl>
<dt onclick="click1(1)">菜单条2</dt>
<dd>菜单11</dd>
<dd>菜单22</dd>
<dd>菜单33</dd>
<dd>菜单44</dd>
</dl>
<dl>
<dt onclick="click1(2)">菜单条3</dt>
<dd>菜单12</dd>
<dd>菜单23</dd>
<dd>菜单34</dd>
<dd>菜单45</dd>
</dl>
-->
<br/>
<br/>
<hr/>
<!--<dl class="close">先手动采用css测试,可以然后采用编程使用-->
<dl>
<dt onclick="click2(this)">1菜单条1</dt>
<dd>菜单1</dd>
<dd>菜单2</dd>
<dd>菜单3</dd>
<dd>菜单4</dd>
</dl>
<dl>
<dt onclick="click2(this)">2菜单条2</dt>
<dd>菜单11</dd>
<dd>菜单22</dd>
<dd>菜单33</dd>
<dd>菜单44</dd>
</dl>
<dl>
<dt onclick="click2(this)">3菜单条3</dt>
<dd>菜单12</dd>
<dd>菜单23</dd>
<dd>菜单34</dd>
<dd>菜单45</dd>
</dl>
</body>
</html>