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循环 遍历对象的下标和值(取值的时候用[]运算符 这里不能用obj.xx属性 不然得到的会是undefined)

var obj = {x:1,y:2,z:3};
    for(var i in obj) {
        alert('下标>' + i + ": 值>" + obj[i]);
}

这里就涉及到了关联数组对象(等下关注)


javascript中的数组其实就是特殊的对象,对对象可以用for/in循环 对数组当然也不例外。。



2.关联数组的对象

 var obj = {x:1,y:2,z:3};

我们可以通过 obj.x obj.y obj.z  "."运算符来获取对象属性值,而"[]"多是用来存取数组的 但是以下两行代码是等价的:


object.property

object["property"]

区别在于>>前者的property是一个标识符 而后者则是一个字符串 。(这里估计有人迷糊了 有什么不同呢??)

        java中一个对象的属性是固定的  不能在执行过程中动态添加属性,但是javascript中可以为对象创建任意数目的属性,当用"."来获取对象的属性值时,属性是一个标识符  而在javascript的标准中 标识符必须是逐个输入的,他们不是一种数据类型,程序是不能操作的。

        而当用"[]"时候,属性是字符串 而字符串是javascript的一种数据类型,可以在程序运行过程中操作并创建的。。


就比如

var obj = {x1 : "sss", x2 : "ddd", x3 : "aaa"};
    var str = "";
    for(var i = 1; i <= 3 ;i++) {
        str += obj["x" + i];  //能通过字符串拼接的方式来访问 而不能通过obj.("x" + i)
    }
    alert(str);



还比如上面的去除重复的例子:

var a = {};
var key = "name";

a[key] = "ganjp";
alert(a.name); 

for(var n in a) {
        alert(a[n]);
}

可以通过这种方式 增加属性  


这里for/in的强大之处 也体现出来了  如果没有for/in我们在不知道属性的情况下 根本不可能去获取所有的属性、

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值