读书人

js的基础知识跟提高

发布时间: 2012-10-07 17:28:51 作者: rapoo

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数组重复元素的例子引入一些语法知识:

} 

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


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我们在不知道属性的情况下 根本不可能去获取所有的属性、

?

?

?

读书人网 >JavaScript

热点推荐