一、BOM对象

  1、什么是BOM对象?

    BOM是浏览器对象模型,核心对象就是window,所有浏览器都支持 window 对象。一个html文档对应一个window对象,主要功能是控制浏览器窗口的, window对象不需要创建对象,直接使用即可。

  2、window对象的使用方法:

     alert() 显示带有一段消息和一个确认按钮的警告框。

     confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。

     prompt() 显示可提示用户输入的对话框。

     open() 打开一个新的浏览器窗口或查找一个已命名的窗口。

     close() 关闭浏览器窗口。
       setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。

       clearInterval() 取消由 setInterval() 设置的 timeout。

     setTimeout() 在指定的毫秒数后调用函数或计算表达式。

     clearTimeout() 取消由 setTimeout() 方法设置的 timeout。

     scrollTo() 把内容滚动到指定的坐标。

二、DOM节点

  1、什么是DOM?

    DOM是文档对象模型,HTML 文档中的每个成分都是一个节点。

  2、节点的分类

    元素节点:其实就是标签

    文本节点:其实就是标签所要表达的内容

    属性节点:其实就是标签内的属性

  3、直接查找节点的方法

    document.getElementById(“idname”)

    document.getElementsByTagName(“tagname”)
    document.getElementsByName(“name”)
    document.getElementsByClassName(“name”)

  4、层次导航节点属性查找

     parentElement // 父节点标签元素
    children // 所有子标签
    firstElementChild // 第一个子标签元素
    lastElementChild // 最后一个子标签元素
    nextElementtSibling // 下一个兄弟标签元素
    previousElementSibling // 上一个兄弟标签元素

  5、节点操作方法:

    1、创建节点

      createElement(标签名) :创建一个指定名称的元素。
    2、添加节点:
      父节点.appendChild(创建的新节点名) 追加一个子节点(作为最后的子节点)
      父节点.insertBefore(创建的新节点名,父节点下某个节点);  把增加的节点放到父节点下某个节点的前边
    3、删除节点:
      父节点.removeChild()  :先获得要删除的节点,然后通过父节点来删除父节点下的子节点
    4、替换节点:
      父节点.replaceChild(创建的新节点, 父节点下需要替换的某个节点);
    5、拷贝节点:
      节点..cloneNode(true); :如果有true则表示完全拷贝(拷贝节点和节点下的子节点),否则只拷贝当前节点
  6、节点下的属性操作方法:
    1、取属性值: 
      1.1 节点名.getAttribute(属性名)
                      1.2 节点名.属性名  (推荐使用)
             2、属性赋值: 
      2.1  节点名.setAttribute(属性名,属性值)
                      2.2 节点名.属性名=属性值
   3、关于class的独有属性操作:

      3.1 节点名.className   查看某个节点的属性
      3.2 节点名.classList.add  向某个节点中添加属性
      3.3 节点名.classList.remove  向某个节点中删除属性
   4、关于select标签:
                        ele_select.options.length=0  清空option操作
                        ele_select.selectedIndex     选中option的索引值
            5、关于style属性:
                       标签名.style.样式属性="值"           
三、DOM event事件
  1、各种事件句柄的介绍
    1.1 onclick    当用户单击某个对象时调用的事件句柄。
    1.2 ondblclick  当用户双击某个对象时调用的事件句柄。
    1.3 onfocus    元素获得焦点。 比如输入框,当鼠标进入输入框时就相当于获得焦点,就会触发事件。
    1.4 onblur    元素失去焦点。 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证.
    1.5 onchange   域的内容被改变。 应用场景:通常用于表单元素,当元素内容被改变时触发.(三级联动)
    1.6 onkeydown   某个键盘按键被按下。 应用场景: 当用户在最后一个输入框按下回车按键时,表单提交.
    1.7 onkeypress    某个键盘按键被按下并松开。
    1.8 onkeyup       某个键盘按键被松开。
    1.9 onload        一张页面或一幅图像完成加载。
    1.10 onmousedown    鼠标按钮被按下。
    1.11 onmousemove    鼠标被移动。
    1.12 onmouseout    鼠标从某元素移开。
    1.13 onmouseover   鼠标移到某元素之上。
    1.14 onmouseleave   鼠标从元素离开

    1.15 onselect     文本被选中。
    1.16 onsubmit     确认按钮被点击,或程序被执行。
  2、事件绑定的方法
    2.1方法1:
      
      注意:形参是除this意外的任何字符串 
 
    2.2方法2:    
            
      建议使用方式2   
 
  3、常用事件介绍    
    3.1 onload事件:当某些节点被加载完后才执行onload内的程序。 
          
 
    3.2 onsubmit事件:被绑定程序执行之前的一个触发程序     
         
 
     3.3onclick事件:某元素被鼠标单击后所执行的程序,但是有bug,解决方法如下。 
             
  注释:当两块区域重合时内层区域会向外层区域传播该事件,外层区域的事件就会被触发,所以需要组织内层区域的事件传播到外层区域。
 
      3.4 onselect事件:当文本被选中时执行的事件。 
             
        注:一般应用于输入框中    
 
      3.5 onchange事件:作用域内的内容被改变就会触发该事件,就相当于父标签下的子标签被改变就会触发事件。
         
 
     3.6 键盘按键按钮事件:键盘按钮按下所触发的事件  
            
      注释:onkeydown 某个键盘按键被按下时所触发的事件        
         onkeypress 某个键盘按键被按下并松开时所触发的事件          
         onkeyup 某个键盘按键被松开时所触发的事件
    3.7onmouseout与onmouseleave事件的区别:   
        1、onmouseout事件是不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。      
      2、onmouseleave事件是只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。      
      3、区别的原因:mouseout事件是会冒泡的,也就是onmouseout事件可能被同时绑定(继承)到了他的子元素上,所以鼠标移出每个子元素时也都会触发事件。 
      

四、js的作用域

  1、什么是作用域?  

    作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。

  2、js中的全局作用域:(在代码中任何地方都能访问到)

    2.1最外层函数和在最外层函数外面定义或者声明的变量拥有全局作用域

    2.2所有直接赋值没有var声明的变量是全局作用域

    2.3所有window对象的属性拥有全局作用域

      eg:一般情况下,window对象的内置属性都都拥有全局作用域,例如window.alert()、window.location、window.top等等。

  3、js中的局部作用域:(只能在代码的某个局部地区能访问的到)

  4、js中的作用域链

    在js中一切皆对象,js代码的执行分为两个阶段,一个是代码的检测阶段,一个是代码的执行阶段。其中检测阶段主要是检测代码的合法性和在内存中开辟相应的内存空间给代码,执行阶段就是给相应的内存空间中的代码赋值,然后执行代码。

  

    

 
 
 
 
 
 
 
 
 
 

javascript高级语法二的更多相关文章

  1. JavaScript高级程序设计(二):在HTML中使用JavaScript

    一.使用<script>元素 1.<script>元素定义了6个属性: async:可选.表示应该立即下载脚本,但不应该妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本 ...

  2. JavaScript高级用法二之内置对象

    综述 本篇的主要内容来自慕课网,内置对象,主要内容如下 1 什么是对象 2 Date 日期对象 3 返回/设置年份方法 4 返回星期方法 5 返回/设置时间方法 6 String 字符串对象 7 返回 ...

  3. javascript高级语法学习

    可维护的代码意味着: 可读的 一致的 可预测的 看上去就像是同一个人写的 已记录 命名函数表达式 (function fn(){}) 他是表达式的原因是因为括号 ()是一个分组操作符,它的内部只能包含 ...

  4. javascript高级语法

    一.JavaScript对象 1.js对象简介 1.1 在JavaScript中除了null和undefined以外其他的数据类型都被定义成了对象,也可以用创建对象的方法定义变量,在JavaScrip ...

  5. JavaScript高级应用(二)(转)

    1.组件是否安装 //组件是否安装 isComponentInstalled("{6B053A4B-A7EC-4D3D-4567-B8FF8A1A5739}", "com ...

  6. javascript 高级程序设计 二

    这里我们直接进入主题: 在JS刚刚开始的时候,必须面临一个问题,那就是如何使的JS的加载和执行不会影响web核心语言HTML的展示效果,和HTML和谐共存. 在这个背景下<script>标 ...

  7. javaScript高级教程(二)Scope Chain & Closure Example

    <!DOCTYPE html> <html> <head> <meta charset=gb2312 /> <title>js</ti ...

  8. javascript高级语法三

    一.js的正则表达式 1.什么是正则表达式 正则表达式(regular expression)是一个描述字符模式的对象,ECMAScript的RegExp类表示正则表达式,而String和RegExp ...

  9. iOS开发——语法篇OC篇&高级语法精讲二

    Objective高级语法精讲二 Objective-C是基于C语言加入了面向对象特性和消息转发机制的动态语言,这意味着它不仅需要一个编译器,还需要Runtime系统来动态创建类和对象,进行消息发送和 ...

随机推荐

  1. Xilinx RocketIO模块的介绍

    摘要: 在高速电路系统设计中,差分串行通信方式正在取代并行总线方式,以满足系统对高带宽数据通信的需求.RocketIO是Virtex2 Pro以上系列FPGA中集成的专用高速串行数据收发模块,可用于实 ...

  2. 李洪强经典面试题52-Block

    李洪强经典面试题52-Block   Block Block底层原理实现 首先我们来看四个函数 void test1() { int a = 10; void (^block)() = ^{ NSLo ...

  3. 5 月 35 日临近,Google 无法访问,可以使用 Google IP 来解决。

    每年都会有几天那啥,你懂的. 直接使用 Google 的域名访问经常会打不开,而使用 Google 的 IP 就会很顺畅. 使用 Chrome 浏览器我们经常都会在地址栏直接搜索,所以我们只要添加一个 ...

  4. C# 子类实例化过程

    刚研究了一下C#子类实例化的过程. 首先我遇到了如下一个问题: 有类A,里面写了一个有参的构造函数,并没有提供默认的无参构造函数.现在类B继承了类A,没有写任何的构造函数. 这时如果想实例化类B就会产 ...

  5. log4cxx日志库RedHat下安装

    今天领导交给我一个任务:把log4cxx库在Redhat系统上面安装起来 首先.我得到信息,安装这个库一共须要三个软件 apr-1.4.6.tar.gz apr-util-1.4.1.tar.gz a ...

  6. MYSQL分区表功能测试简析

    1.查看Mysql版本是否支持分区  SHOW VARIABLES LIKE '%partition%';   +-------------------+-------+ | Variable_nam ...

  7. 矩阵中的路径 剑指offer65题

    include "stdafx.h" #include<vector> #include<algorithm> #include<string> ...

  8. 如何使用 TP中的公共函数 (定义在common/common.php中的函数)

    如何使用 TP中的公共函数 (定义在common/common.php中的函数) (2011-09-30 15:32:09) 转载▼ 标签: 杂谈   1.在common/common.php 中有个 ...

  9. Hibernate使用Log4j日志记录(使用xml文件)

    日志记录使程序员能够将日志详细信息永久写入文件. Log4j和Logback框架可以在hibernate框架中使用来支持日志记录. 使用log4j执行日志记录有两种方法: 通过log4j.xml文件( ...

  10. Eclipse 运行程序

    运行 Java 程序 我们可以在 Package Explorer 视图 可以在 Package Explorer 视图中快速运行 Java 程序. Package Explorer 视图: 鼠标右击 ...