日期:2014-05-16 浏览次数:20459 次
看到一个分辨js水平的简单的例子: 问题是判断当前是星期几、
? 初级想到的是 switch case 或者if else
?function one() {
var weekday = new Date().getDay();
var str = "今天是星期";
switch(weekday) {
? case 0 :
? ? ? ? ? ? ?str+="日";
? ? ?break;
? ?......
? ? ? ? }
return str;
? }
?稍微进阶的:
? ?var weekdays = ['日','一','二','三','四','五','六'];
? ?var week = new Date().getDay();
? ?alert("今天是星期" + weekdays[week]);
更简便点的:
? ?var str = "今天是星期" + "日一二三四五六".charAt(new Date().getDay());
慢慢的就变成一行代码了。别看这个很简单 能这么想这跟视野和知识水平很有相关
1.通过一个去除js数组重复元素的例子引入一些语法知识:
<script type="text/javascript"> var data = [1,2,2,8,6,8]; data = unique(data); //alert(data.length); /*for(var i = 0 ; i < data.length ; i ++){ alert(data[i]); }*/ for(var i in data) { alert(data[i]); } function unique(data) { data = data || []; //意思是如果data是null 就赋值[] var a = {} ;//对象 for( var i = 0,len = data.length ; i < len ;i ++) { var v = data[i]; //如果typeof[a[v]]不等于undefined就说明已经存在这个值了 就不往a对象里面放值了 //这样就保证了数组data中重复的值在a的下标中只存在一个 if('undefined' == typeof(a[v])) { a[v] = 1; //随便赋值一个 因为这里只要下标 值无关紧要 } } //重置数组 data.length = 0; //往数组中添加值 for(var i in a){ //这里数组的长度会增加 data[data.length] = i; } return data; }
?
上面涉及到的两个重点的东西:1.for in 循环? 2.作为关联数组的对象(上面的对象a)
简单介绍下for in循环>>>
?语法: for(variable in object) {
????????????? statement
????????? }
variable可以是 声明的一个var的变量 数组的一个元素 或者是对象的一个属性
循环过程中 会对主体object的每一个属性执行一次,把属性名以字符串的形式赋值给variable变量? 这里就可以用"[]"
运算符获得属性值
for/in循环 遍历对象的下标和值(取值的时候用