日期:2014-05-16  浏览次数:20437 次

js的基础知识和提高

看到一个分辨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());


慢慢的就变成一行代码了。别看这个很简单 能这么想这跟视野和知识水平很有相关


废话不都说了 慢慢的介绍javascript的一些知识和用法吧 ?水平比较一般 看官见谅:




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循环 遍历对象的下标和值(取值的时候用