`
ganjp
  • 浏览: 70211 次
  • 性别: Icon_minigender_1
  • 来自: 其实还可以
社区版块
存档分类
最新评论

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

 

 

 

分享到:
评论

相关推荐

    前端十年经验 - JavaScript基础知识大纲-思维构图.pdf

    这份文件是一份前端十年经验的JavaScript基础知识大纲,主要是为了帮助前端开发者系统地学习和掌握JavaScript的基础知识。该大纲采用思维构图的方式,将JavaScript的基础知识按照不同的主题进行分类和整理,包括数据...

    JavaScript入门篇,JavaScript基础知识

    你可以尝试编写一些基础的JavaScript代码,或者参与一些在线编程挑战,以此来提高你的实际编程能力。总的来说,通过不断的学习和实践,你可以逐步掌握JavaScript的使用技巧,为日后的编程开发打下坚实的基础。

    微软前端课程:学习JavaScript, CSS和HTML的基础知识,12周课程,由微软云倡导者带给您

    学习JavaScript, CSS和HTML的基础知识,12周课程,由微软云倡导者带给您。每24课包括课前和课后测验,详细的书面说明,解决方案,作业,以及更多。以项目为基础的学习方法,我们的课程旨在帮助您通过动手建设培养...

    wps-excel办公+JS宏编程教程基础到进阶+函数使用手册

    内容概要:主要讲解JS代码实现excel宏编程,从基础到进阶,另外也可作为函数查找手册用,或者帮助文档用;使用JS代码宏编程的优势就是运行快、代码简单易上手、且由于代码提示作用使得代码编写极快。提高工作效率。 ...

    JavaScript宝典(第7版)

    经典畅销书 JavaScript宝典(第7版) 将帮您实现这些夙愿,它在大量示例代码和可运行脚本的引导下,指导您快速掌握JavaScript基础知识,并制定出最符合预定网站目标的策略。通过认真研读本书,您将可以编写脚本来实现...

    JavaScript宝典(第7版)( (美)Danny Goodman) 高清中文扫描版.pdf

    经典畅销书们avascript宝典(第7版)》将帮您实现这些夙愿,它在大量示例代码和可运行脚本的引导下,指导您快速掌握javascript基础知识,并制定出最符合预定网站目标的策略。通过认真研读本书,您将可以编写脚本来实现...

    《JavaScript脚本特效编程给力起飞》

    沿途停靠的站点包括:JavaScript基础、JavaScript语法、JavaSctipt编程、页面交互信息的实现、Ajax客户端技术、jQuery框架、Ext JS框架和JavaScript调试的利器Firebug,以及使用iQuery实现在线留言板系统和一些门户...

    Javascript学习安卓版

    4、Javascript基础 5、Javascript高级 6、Javascript特效 无论您是在校大学生,还是职业学员,或者网页设计人员,本书都志在全面提高您的Html设计思想和Javascript实力,使您能够设计出高质量的Html网页,相信读...

    Javascript学习(apk)

    4、Javascript基础 5、Javascript高级 6、Javascript特效 无论您是在校大学生,还是职业学员,或者网页设计人员,本书都志在全面提高您的Html设计思想和Javascript实力,使您能够设计出高质量的Html网页,相信读...

    JavaScript开发的基本流程.doc

    了解HTML和CSS:在开始JavaScript开发之前,理解HTML和CSS的基础知识是非常重要的。HTML定义了网页的结构和内容,而CSS则控制着网页的样式和布局。这两者共同构成了网页的骨架和外观,为JavaScript提供了交互的基础...

    javascript混淆加密1.0

    敏创Javascript混淆加密器是广州市敏创信息科技有限公司在保护自己的javascript源代码过程中积累的一套实用工具,可以有效地对javascript代码进行混淆加密,达到保护自己知识产权的目的。 工具可以去除空格,回车,...

    javascript脚本之家

    用于学习javascript,提升基础知识的理解,提高读者的编程能力。

    实例驱动的JavaScript教程,帮助你快速上手.pdf

    本课程是一门针对初学者的JavaScript基础入门教程,旨在帮助学习者快速掌握JavaScript编程语言的基本概念和应用技巧。无论你是完全没有编程经验的新手,还是具备其他编程语言知识的学习者,都能从本课程中获得实用的...

    JavaScript脚本特效编程给力起飞

    沿途停靠的站点包括:JavaScript基础、JavaScript语法、JavaSctipt编程、页面交互信息的实现、Ajax客户端技术、jQuery框架、ExtJS框架和JavaScript调试的利器Firebug,以及使用iQuery实现在线留言板系统和一些门户...

    JavaScript 权威指南

    学习javascript的很有用的书籍啊!包括基础的JS知识和提高!

    Js学习(apk)

    4、Javascript基础 5、Javascript高级 6、Javascript特效 无论您是在校大学生,还是职业学员,或者网页设计人员,本书都志在全面提高您的Html设计思想和Javascript实力,使您能够设计出高质量的Html网页,相信读...

    Vue 面试常见问题30问答

    Vue.js的基础知识,包括Vue.js的概念、优点、MVVM模式、数据驱动、指令、生命周期、组件化开发、父子组件通信、computed属性、watch属性等。 面试Vue.js前端开发工程师或有一定Vue.js基础的学习者。 面试Vue.js...

    JavaScript核心技术 PDF扫描版

    《JavaScript核心技术》是一本真正意义上的“新书”,不仅介绍了最新的JavaScript知识和方向,还完全覆盖了当今Web开发中关于JavaScript的所有重要话题,它使用了大量实例代码,图文并茂地讲解了使用JavaScript的...

    JavaScript面试揭秘:掌握这些高频题,轻松征服面试官!.zip

    本内容梳理了20个高频面试题,涵盖了JavaScript的基础知识、高级特性以及编程技巧,帮助求职者深入理解JavaScript的核心概念,提升面试表现。 适应人群: 即将参加前端开发岗位面试的求职者 希望提升JavaScript技能...

    计算机基础知识大全.doc

    1、计算机工作原理: 1)什么是计算机 计算机(Computer)是一种能接收和存储信息,并按照存储在其内部的程序(这些程 序是人们意志的体现)对输入的信息进行加工、处理,然后把处理结果输出的高度自动 化的电子设备...

Global site tag (gtag.js) - Google Analytics