第三阶段-js

一、javascript的简介

    1.基于对象和事件驱动的语言,应用与客户端

        a.基于对象:

        提供好了很多对象,可以直接拿过来使用

        b.事情驱动:

        html做静态效果,javascript做动态效果

        c.客户端:专门指的是浏览器

    2.js的特点

        a.交互性

        信息的动态交互

        b.安全性

        js不能访问本地磁盘的文件

        c.跨平台性

        java里面跨平台性,虚拟机,能够支持js的浏览器,都可以运行 

       d.javascript和java的区别:

        java是sun公司,现在是oracle,js网景公司

        javascript是基于对象的,jiava是面向对象

        java是强类型的语言,js是弱类型的语言

        java: int i = 10;

        js: var i = 10; var m = "10";

        javascript只需要解析就可以执行,而java需要先编译,再执行

    3.javascript的组成部分

        a.ECMAScript

        ECMA:欧洲计算机协会

        专门制定的js语法、语句

        b.BOM

        broswer object model:浏览器对象模型

        c.DOM

        document object model:文档对象模型

二、js和html的结合方式

    第一种:使用一个标签<script type="text/javascript"></script>

    第二种:引用外部Js文件<script type="text/javascript" src=".js">

    注意:用引入就不要在js标签写代码了

三、js的数据类型

    1.java的基本类型    

    2.定义变量都使用关键字var

    3.js的原始类型

        a.string: 字符串

        b.number: 数字类型

        c.Boolean:true和false

        d.null: 空

        e.undifined: 定义一个变量,没有赋值

    4.typeof() 查看当前变量的数据类型

四、js基本语句

    1.跟java一样:if、switch、while、for

五、js的运算符

    1. js里面不区分整数和小数

        var j = 123;

        alert(j/1000*1000);

        Java里面是0,而js123/1000=0.123*1000=123;

    2. 字符串的相加和相减操作

        a.如果相加时候,做的字符串拼接

        b.如果相减是数字类的字符串类型会进行相减运算,如果是字母其他类型的会提示NaN

    3. boolean类型也可以操作

        a.如果设置成true,相当于这个值是1

        b.如果设置成false,相当于这个值是0

    4. ==和===区别

        ==:比较的只是值

        ===:比较的是值和类型

    5.i++/++i和java里面一样

        i++:先执行后+1

        ++i:先+1后执行

    6.引入知识

        a.直接向页面输出语句(可以把内容显示在页面上)

         document.white("aaaa")

         document.white("<hr/>")

        b.可以向页面输出变量,固定值和html代码

六、js的数组

    1.定义方式(3种)

        a.var arr =[1,2,3]; var arr = [1,"d",true];

        b.使用内置对象Array对象

        var arr = new Array(5);

        c.使用内置对象 Array

       var  arr2 = new Array(3,4,5);

        d.可以存放不同的数据类型

七、js的函数

    1.第一种方式

        a.使用到一个关键字function

        function 方式名(参数列表){

                方法体;

            返回值可又可无

        }

    2.第二种方式

        a.匿名函数

        var add = function(参数列表){

            方式体和返回值;

        }

    3.第一种方式(用得少,了解)

        a.动态函数

        使用到js里面的一个内置对象Function

        var add = new Function("参数列表",“方法和返回值“)

八、js的全局变量和局部变量

    1.全局变量:在script标签里面定义个变量,这个变量在页面中的js部分都可以使用

    2.局部变量: 在方法内部定义个变量,只有内在方法内部可以使用

九、script标签存放的位置

    1.建议script标签放到</body>后面

十、js的String对象

    1.与HTML相似的使用方法(查看手册)

    2.与JAVA相似的使用方法

十一、js的Array对象

    1.创建数组

    2.属性

    3.方法

十二、js的Date对象

    1.在Java里面获取当前时间

    Date date = new Date()

    格式化:toLocaleString()

    2.js里面获取当前时间

    Var date = new Date();        

    document.write(date)

    //转换格式化

    document.write(“<hr/>”);

    document.write(date.toLocaleString());

    3.Date使用方法(查看手册)

十三、js的Math对象

    1.都是静态方法,使用直接调用Math.方法()

十四、js函数的重载(模拟)

    1.重载的定义:方法名相同,参数不同

    2.js不存在重载,但通过其他方式重载

    3.把传递的参数保存到arguments数字里

十五、js的bom浏览器对象模型

    1.navigator:获取浏览器的信息

    2.screen:获取屏幕信息

    3.location: 请求url地址

        a.获取到请求url地址

        b.设置url地址

      -页面上安置一个按钮,按钮绑定一个事件,点击触发按钮

          例:点击跳转页面

        <input type=“button” value="tiaozhuan" onclick="herf1()";/>

        function herf1(){

            location.href = "hello.html";

        }

    4.history:请求的url的历史记录

        a.访问到上一个页面

        history.back();

        history.go(-1)

        b.访问到下一个页面

        history.forward();

        history.go(1)

    5.window(***)

        a.window.alert(): 页面弹出一个框,显示内容

        简写alert()

        b.confirm(): 确认框

        var flag = window.confirm("显示内容")

        c.prompt(): 输入的对话框

        window.prompt("在显示内容","输入框里面的默认值")

        window.prompt("please input: ","0")

        d.open(): 打开一个新的窗口

        open("打开一个新的窗口的url","","窗口的特征")

        e.close(): 关闭窗口

        f.做定时器

        表示每三秒,执行一次alert方法

        *setInterval("js代码",毫秒数);

        表示在毫秒之后执行,只会执行一次

        *setTimeout("js代码",毫秒数)

        *clearInterval():清除setInterval

        *clearTimeout(): 清除setTimeout

十六、js的dom文档模型对象

    1.文档:超文本文档

    2.对象:提供属性和方法

    3.模型:使用属性和方法操作超文本标记文档

    4.解析过程

        --document对象:整个文档

        --element对象:标签对象

        --属性对象

        --文本对象

        --Node结点对象:是这些对象的父对象

        如果找不到想要的方法,Node对象里面找

    5.常用的方法

        a.write():

        -向页面输出变量

        -向页面输出html代码

        b.getElementById();

        通过id得到的元素

        例子:var input1 = document.getElementById("nameid");

        alert(input.name);

        input1.value = "bbbbbb";

        c.getElementsByName();

        通过标签的name的属性值得到标签

        d.getElementsByTagName("标签名称");

        通过标签名称得到元素

        e.注意的地方

        只有一个标签,这个标签只能使用name获取,使用getElementsByName返回的是一个数组

        var inputs2 = document.getElementsByName("name11")[0];

        alert(inputs2.value);

十七、元素对象(element对象)

    1.要操作element对象,首先必须要获取到element

        a.使用document里面相应的方法获取

    2.方法

        a.获取属性里面的值

        getAttribute("属性名称")

        var input1 = document.getElementById("inputid");

        alert(input1.getAttribute("value"));

        b.设置属性的值

        input1.setAttribute("class","hahah");

        c.删除属性

        input1.removeAttribute("name");

        !不能删除value

十八、Node对象属性

    * nodeName

    * nodeType

    * nodeValue

    * 使用dom解析html,需要html里面的标签,属性和文本都封装成对象

    1.标签节对应的值

    * nodeName: 大写标签名称

    * nodeType: 1

    * nodeValue: null 

    2.属性结点对应的值

    * nodeName:  属性名称

    * nodeType: 2 

    * nodeValue:属性的值

    3.文本结点对应的值

    * nodeName:  属性名称

    * nodeType:  3

    * nodeValue: 属性的值

十九、Node对象属性之二

    1.父节点

        a.ul是li的父节点

        parentNode

        var li1 = document.getElementById("li1");

        var ul1 = li1.parentNode;

        alert(ul1.id);

    2.子节点

        a.li是ul的子节点

        childNode: 得到所有子节点,但是兼容性很差

        firstChild: 获取第一个子节点

        lastChild: 获取最后一个字节点

    3.同辈结点

        a.li直接关系是同辈结点

       b.nextSibling:返回一个给定节点的下一个兄弟节点

        c.previousSibling:返回一个给定节点的上一个兄弟节点

二十、操作dom树

        1.appendChild方法

        a.添加子节点到末尾

        b.特点:类似剪切粘贴的效果

    2.insertBefore(newNode,oldNode)方法

        a.在某个节点之前插入一个新的节点

        b.两个参数

        *要插入的节点

        *在谁之前插入

        c.插入一个节点,节点不存在,创建

            2.1 创建标签

             2.2 创建文本

             2.3 把文本添加到标签下面

        d.例子:

       1.获取到lil标签

      2.创建li

      3.创建文本

     4.把文本添加到li下面

     5.获取到ul

     6.把li添加到ul下面

        在<li>貂蝉</li>之前添加<li>詹姆斯</li>

       //获取貂蝉标签

      var lil3 = document.getElementById("lil3");

     //创建li

     var lil5 = document.createElement("li");

     //创建文本

      var text15 = document.createTextNode("詹姆斯");

     //文本添加到li下面,appendChild

     lil5.appendChild(text15);

     //获取到ul

     var ul21 = document.getElementById("ulid21");

     //在<li>貂蝉</li>之前添加<li>詹姆斯</li>

     ul21.insertBefore(lil5,lil3);

       e.removeChild方法:删除节点

        a.通过父节点删除,不能自己删除自己

    1.获取到li24标签

    2.获取父节点ul标签

    3.通过父节点执行删除

    f.replaceChild(newNodem,oldNode):替换节点

       a.通过父节点替换,不能自己替换自己

       b.步骤

    1.获取旧的节点

    2.创建标签li

    3.创建文本

    4.把文本添加到li下面

    5.获取父节点ul标签

    6.执行替换操作

    g.cloneNode(boolean):复制节点

    a.操作步骤

        1.获取ul

        2.执行复制方法cloneNode方法复制true

        3.把复制之后的内容放到div里面去

    3.1 获取到div

    3.2 appendChild方法

二十一、innerHTML属性

    1.第一作用:获取文本内容

        a. var span1 = document.getElementById("sid");

        alert(span1.innerHTML);

    2.第二作用:向标签里面设置内容

        a.例子:向div里面设置内容

            1.获取div

            2.设置内容

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258

推荐阅读更多精彩内容

  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,719评论 0 8
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,619评论 2 17
  • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
    mo默22阅读 1,168评论 0 5
  • 给你 文/修诚...
    梁伯益阅读 294评论 0 1
  • 其实个人一直比较想不明白为什么一家嵊州美食的小店要喊作“广东粥”。有同学说因为广东粥是一个品牌,还有一个来自嵊州的...
    大Yi巴狐狐阅读 601评论 2 2