数组
- for in通过索引来获取元素(用于数组的遍历)
- for of得到数组的元素(不会对原数组的元素做出改变)
slice和splice用于数组的截取(slice不改变原有数组的长度且不包括结束的位置而splice改变了原有数组)
var arr01=[1,3,5,7,9,11,13,15,17,19]; for(var index in arr01){ console.log(index);//输出结果为该数组的下标 console.log(arr01[index]);//输出结果为该数组的元素 } for(var item of arr01){ console.log(item);//直接得到数组内的元素 var new_arr=arr01.slice(0,2); console.log(new_arr);//这时得到的是该数组内下标为0和1的两个元素 var new_arr02=arr01.splice(5,3,'a','b'); console.log(new_arr02);//输出为11,13,15 console.log(arr01);//输出为1,3,5,7,9,"a","b",17,19
- 数组的去重和清空
indexof函数用于判断该数组如果存在元素则返回该元素的位置,否则返回-1
var arr01=[1,3,3,3,5,7,9,9,11,13,15,17,19];
var new_arr=[];
for(var item of arr01){
if(new_arr.indexOf(item)==-1){//if语句判断new_arr中是否存在该元素
new_arr.push(item);//将该元素放入新数组
}
}
console.log(new_arr);
//数组清空
arr01.splice(0,arr01.length);
arr01=[];
字符串
单引字符与双引字符
var str='my name is "fjw"';//嵌套使用 var str_obj=new String('hell string '); console.log(typeof str);//输出为string类型 console.log(typeof str_obj);//输出为object型,因为它是一个对象.
判断一个文件扩展名是否为.jpg.
split() 方法用于把一个字符串分割成字符串数组而pop() 方法用于删除并返回数组的最后一个元素。
var file='user.png.jpg'; var file_type=file.split('.').pop(); console.log(file_type); //等价于 //var arr=file.split('.') // var file_type=arr[arr.length-1]; // console.log(file_type);
判断字符串是否是e-mail:
首先indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索,判断条件则是必须包括一个‘@’,‘@’和‘.’的距离要大于1,‘.’的距离要小于(字符串数组的长度-2)。用alert()函数输出结果。
var email='fanjiawei@163.com'; var index_at=email.indexOf('@'); var index_point=email.lastIndexOf('.'); if(index_at>0 && index_point-index_at>1 && index_point<email.length-2) { alert('yes') }else{ alert('no') }
- JSON: JavaScript Object Notation(JavaScript 对象表示法), 是存储和交换文本信息的语法。
*. 将json转化为字符串
var str_user=JSON.stringify(user);
*. 将字符串转化为json
var json_user=JSON.parse(str_user);
<style>
.container{
width: 600px;
height: 300px;
background: #dbdbdb;
margin: auto;
}
table{
width: 100%;
}
td{
width: 25%;
}
</style>
</head>
<body>
<div class="container">
<table id="con_goods">
<tr>
<td>序号</td>
<td>名称</td>
<td>价格</td>
<td>销量</td>
</tr>
</table>
</div>
<script type="text/javascript">
var goods=[
{"id":"001","name":"iphone6","price":2000,"count":120000,},
{"id":"002","name":"iphone6s","price":3000,"count":320000},
{"id":"003","name":"iphone6sp","price":3000,"count":120000},
{"id":"004","name":"iphone7","price":4000,"count":520000},
{"id":"005","name":"iphone7s","price":5000,"count":120000},
{"id":"006","name":"iphone8","price":6000,"count":120000}
];
// 1. 获取容器(#id)
var con=document.querySelector('#con_goods');
// 2. 遍历数据
for(var item of goods){
con.innerHTML+=`
<tr onclick="show(${item.id})">
<td>${item.id}</td>
<td>${item.name}</td>
<td>${item.price}</td>
<td>${item.count}</td>
</tr>
}
function show(id) {
alert(id)
}
</script>
date函数
- 下列代码将计时器封装成一个函数。
function timeFormat(start_time,end_time) {
var time=(new Date(end_time)-new Date(start_time))/1000;//求出现在和规定时间的一个时间差
var days=parseInt(time/(24*60*60));//天数
var hours=parseInt(time%(24*60*60)/(60*60));//小时
var minutes=parseInt(time%(60*60)/60);//分钟
var seconds=parseInt(time%60);//秒
return `剩余时间:${days}天:${hours}小时:${minutes}分钟:${seconds}秒`
}