JavaScript 中级笔记 第一章

一,回顾
首先先来回顾下DOM和事件。
1,DOM
DOM在JavaScript中是应用最广泛的,大部分Web开发的编程语言都提供了相关的实现。给了开发者一个统一的接口。
看下面的例子:

demo

/*
示例操作DOM元素
*/
window.onload = function(){
//给Dom元素添加颜色
var li = document.getElementsByTagName("li");
for(var i=0;i

    • 李老师-英语
    • 张老师-数学
    • 刘老师-物理

    [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

    等待页面所有内容加载完毕后,通过getElementsByTagName()方法获取页面中的li元素,然后循环改变li元素颜色为红色。
    再看第二个DOM例子,例子将把第二个li元素从页面中删除。

    demo

    /*
    示例操作DOM元素
    */
    window.onload = function(){
    //给Dom元素添加颜色
    var li = document.getElementsByTagName("li");
    for(var i=0;i

    • 李老师-英语
    • 张老师-数学
    • 刘老师-物理

    [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

    现获取到li元素的父节点ul元素,然后使用removeChild() 方法删除ul元素下 指定的li元素。
    当然也可以直接使用 parentNode来直接获取li元素的父节点。代码如下:


    代码如下:

    window.onload = function(){
    //给Dom元素添加颜色
    var li = document.getElementsByTagName("li");
    for(var i=0;i<li.length;i++){
    li[i].style.color = "red";
    }
    //删除第二个li元素
    //var ul = document.getElementsByTagName("ul")[0]; //索引从0开始
    //ul.removeChild( li[1] ); //索引从0开始
    li[1].parentNode.removeChild( li[1] ); //索引从0开始,直接使用parentNode来获取li元素的父节点
    }

    2,事件
    事件是黏合应用程序中所有用户交互的胶水。DOM和事件的是JavaScript中的黄金搭档(呵呵,来句广告词),它们决定着现代Web应用程序形态的根本所在。
    看下面的例子:

    demo

    /*
    示例操作DOM元素
    */
    window.onload = function(){
    //给Dom元素添加颜色
    var li = document.getElementsByTagName("li");
    for(var i=0;i

    • 李老师-英语
    • 张老师-数学
    • 刘老师-物理

    [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

    本例中,获取的li元素后,然后循环给元素添加事件,添加了onmouseover和onmouseout事件。当滑入时,改变颜色,滑出时,恢复颜色。
    事件是复杂多变的,上例是一个最简单的例子,所以基本上没遇到问题。在以后,我们将遇到 比如 事件冒泡,事件传递 ,取消事件等问题。
    3,DOM和事件
    在DOM和事件交互的基础上产生了DHTML,它的实质就是JavaScript事件和DOM元素上CSS属性之间的交互。DHTML存在的意思就是组合这两个技术,然后做它的事情。
    二,简单的面向对象开发
    我们先来感受一下JavaScript面向对象是怎么一个写法。下面代码展示了学校中的课程名和老师的信息。

    /*
    示例用一个对象组合表示学校中的课程
    'Lecture'类
    用name和teacher作为参数
    */
    function Lecture(name,teacher){
    this.name=name;
    this.teacher=teacher;
    }
    //'Lecture'类的一个方法,用于生成一条信息
    Lecture.prototype.display=function(){
    return this.name + " 是教 "+this.teacher +" 的。" ;
    }
    //下面用new来构造一个新的函数,然后调用display方法
    var L = new Lecture("李老师","英语");
    var L_msg = L.display();
    alert(L_msg);

    [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

    最终结果会输出“李老师 是教 英语 的。”
    在此例子的基础上,我们再定义个函数,用来输出所有的课程信息。代码如下所示:

    /*
    示例用一个对象组合表示学校中的课程
    'Lecture'类
    用name和teacher作为参数
    */
    function Lecture(name,teacher){
    this.name=name;
    this.teacher=teacher;
    }
    //'Lecture'类的一个方法,用于生成一条信息
    Lecture.prototype.display=function(){
    return this.name + " 是教 "+this.teacher +" 的。" ;
    }
    //下面用new来构造一个新的函数,然后调用display方法
    var L = new Lecture("李老师","英语");
    var L_msg = L.display();
    //alert(L_msg);
    //新定义一个'AllLecture'类
    //用'lec'作为参数,lec是一个数组
    function AllLecture( lec ){
    this.lec = lec;
    }
    //'AllLecture'类的一个方法,用于生成所有的课程信息
    //需要循环输出'lec'
    AllLecture.prototype.display=function(){
    var str = "";
    for(var i=0;i

    [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

    最终结果会输出:

    本例中, 数组的值都调用了 display()方法。
    改进如下:



    代码如下:

    AllLecture.prototype.display=function(){
    var str = "";
    for(var i=0;i<this.lec.length;i++){
    str += this.lec[i] + "\n";
    }
    return str;
    }

    中的this.lec[i] 处,统一调用display()方法。然后去掉数组的值调用display()。修改后的代码如下:

    /*
    示例用一个对象组合表示学校中的课程
    'Lecture'类
    用name和teacher作为参数
    */
    function Lecture(name,teacher){
    this.name=name;
    this.teacher=teacher;
    }
    //'Lecture'类的一个方法,用于生成一条信息
    Lecture.prototype.display=function(){
    return this.name + " 是教 "+this.teacher +" 的。" ;
    }
    //下面用new来构造一个新的函数,然后调用display方法
    var L = new Lecture("李老师","英语");
    var L_msg = L.display();
    //alert(L_msg);
    //新定义一个'AllLecture'类
    //用'lec'作为参数,lec是一个数组
    function AllLecture( lec ){
    this.lec = lec;
    }
    //'AllLecture'类的一个方法,用于生成所有的课程信息
    //需要循环输出'lec'
    AllLecture.prototype.display=function(){
    var str = "";
    for(var i=0;i

    [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

    同样也可以输出跟上例一样的结果。
    这是一个简单的面向对象开发的例子,随着JavaScript逐渐被程序员所接受,设计良好的面向对象代码也日益普及。在后面的笔记中,你将会看到更多的面向对象程序代码。
    三,小结
    本章回顾了DOM和事件,然后通过例子简单的讲解了面向对象的开发。

  • (0)

    相关推荐

    • JavaScript 中级笔记 第一章

      一,回顾 首先先来回顾下DOM和事件. 1,DOM DOM在JavaScript中是应用最广泛的,大部分Web开发的编程语言都提供了相关的实现.给了开发者一个统一的接口. 看下面的例子: demo /* 示例操作DOM元素 */ window.onload = function(){ //给Dom元素添加颜色 var li = document.getElementsByTagName("li"); for(var i=0;i 李老师-英语 张老师-数学 刘老师-物理 [Ctrl+A

    • JavaScript 中级笔记 第二章

      1,引用 引用是一个指向对象实际位置的指针.看下面的使用引用的例子: /*示例引用*/ var obj = new Object(); //定义一个空对象 var newObj = obj; //定义一个新对象引用. obj.name = "rain";//修改原对象的属性 alert( newObj.name ); alert( obj.name == newObj.name );//由此可以证明它们是引用的同一个对象 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 本例

    • JavaScript 中级笔记 第五章 面向对象的基础

      一,面向对象的基础 对象是JavaScript的基础.从最基本的层次上说,对象是一系列属性的集合. 1,对象的创建 //创建一个新的Object对象,存放在obj变量中 var obj1 = new Object(); //设置属性 obj1.value = 5; obj1.click = function(){ alert("Hello"); } //另一种方式定义一个对象,以键值(key/value)的方式定义属性 var obj2 = { value : 5, click : f

    • JavaScript 中级笔记 第四章 闭包

      5,闭包 闭包意味着内层的函数可以引用存在于包围它的函数内的变量,即使外层函数的执行已经终止. 让我们先来看一个闭包的例子. function add(num){ return function(toAdd){ return num+toAdd; //代码① } } var addFive = add(5); //此时addFive为function(toAdd){return num+toAdd;} var count = addFive(3); //此时count为 num+toAdd al

    • JavaScript 中级笔记 第三章

      3,作用域 所有的面向对象的语言都有某种形式的作用域,JavaScript也不例外.在JavaScript里,作用域是由函数划分的,而不是由块(while,if之类的)来划分的. 我们先来看一个简单的作用域的例子. var foo = "a"; //设置全局变量foo if(true){ var foo = "b";//在if块中,把foo的值改为b,注意:此时还在全局作用域中 } alert(foo); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

    • JavaScript DOM学习第一章 W3C DOM简介

      在这一章我主要介绍已经被新一代的浏览器所支持的W3C 第一级的DOM.对他的运作做一个大概的了解并且让你知道你可以对他们做什么. 首先是对于DOM的一些建议和DOM设计的目的,然后我会告诉你什么是节点(nodes)并且怎样通过DOM树来遍历节点.接着是如何得到一个特定的节点,以及怎样改变他的值和属性.最后就是DOM的终极目标:怎么创建一个自己的新节点. 建议 Level 1DOM是W3C制定的用来提供给任何程序语言来访问XML文档的.不管你用什么语言程序来处理XML文档,只要是Level 1DO

    • MYSQL必知必会读书笔记 第一章(基础)

      1.1 什么是数据库 数据库(database)是一个以某种有组织的方式存储的数据集合. 保存有组织的数据的容器(通常是一个文件或一组文件) 注意:人们通常使用数据库来代表他们使用的数据库软件.其实这是不正确的,确切的说,数据库软件应该成为DBMS(数据库管理系统).数据库是通过DBMS创建和操作的容器.数据库可以是保存在硬件设备上的文件,但也可以不是.在很大程度上说,数据库究竟是文件还是别的什么东西并不重要,因为你并不直接访问数据库:你使用的是DBMS,它替你访问数据库. 1.2 表 表(ta

    • Python基础教程学习笔记 第一章 基础知识

      1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入"python -V"查看版本号,注意V是大写字母,这条命令是Windows命令,而不是python shell的命令 3.让解释器只执行普通的除法运算:from __feture__ import division 4.执行整除运算的运算符:// 5.取幂运算符:2**4 相当于2的4次方,-2**4相当于2的4次方之后取负,因为

    • JavaScript学习笔记之创建对象

      JavaScript 有Date.Array.String等这样的内置对象,功能强大使用简单,人见人爱,但在处理一些复杂的逻辑的时候,内置对象就很无力了,往往需要开发者自定义对象. 从JavaScript定义上讲对象是无序属性的集合,其属性可以包含基本值.对象或函数.也就是说对象是一组没有特定顺序的属性,每个属性会映射到一个值上,是一组键值对,值可以是数据或对象. 对象是JavaScript的基本数据类型.在JavaScript中除了字符串.数字.true.false.null和undefine

    • JavaScript学习笔记之ES6数组方法

      ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了).上一次标准的制订还是2009年出台的ES5.目前ES6的标准化工作正在进行中,预计会在14年12月份放出正式敲定的版本.但大部分标准已经就绪,且各浏览器对ES6的支持也正在实现中. ES6给数组添加了一些新特性,而这些新特性到目前为止完全可以运用到自己的业务层.在这一节中将总结有关于ES6给数组提供一些新特性的使用方法. ES6提供

    随机推荐