一、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下载方式(具体可以参考配置MCS文件时右下角help调出的doc)

    1.两者都属高速并行配置模式.SelectMAP是早期的FPGA两类配置模式之一,是相对于串行(Serial)配置而言的,与主串(Master Serial)和从串(Slave Serial)模式对应 ...

  2. VS2017调试MVC程序,中文输入法下浏览器闪退,程序调试终止

    工具->选项-> 项目和解决方案->Web项目->浏览器窗口关闭时停止调试器(s) 复选√ 去掉即可,

  3. centos7下安装mysql5.7和jdk 1.8

    安装mysql5.7 具体安装过程可参见官网:A Quick Guide to Using the MySQL Yum Repository 进入/usr/local/src文件夹. cd /usr/ ...

  4. python3 读取csv的常用语法

    import csv #打开文件,用with打开可以不用去特意关闭file了,python3不支持file()打开文件,只能用open() with open("info.csv" ...

  5. 【Mac + Python3.6 + ATX基于facebook-wda】之IOS自动化(二):安装facebook-wda库并编写简易自动化测试脚本

    上一篇介绍完如何安装WDA,接下来开始正式安装开发库并编写自动化脚本. 目录: 一.安装facebook-wda库 二.通过WEditor定位元素 三.附录:学习资料 一.安装facebook-wda ...

  6. 【Python + ATX基于uiaotumator2】之Android—APP自动化简易例子

    上代码: import uiautomator2 as u2 from time import sleep d = u2.connect_usb('608ad0fe') #打开小卖 # d(text= ...

  7. C指针类型小结

    要理解复杂的指针类型其实很简单,一个类型里会出现很多运算符,它们也像普通表达式一样,有优先级. 原则: 从变量名开始,根据运算符优先级结合,一步一步分析. 下面让我们先从简单的类型开始慢慢分析吧: i ...

  8. GIS开发离线地图应用-初识gis

    http://www.cnblogs.com/kevin-zlg/p/4611671.html 最新公司需要做一个基于gis地图的应用系统,由于之前公司项目中的电子地图模块都是我开发的,所以这个新系统 ...

  9. 如何居中div?

    如何居中div? 水平居中 1 //给div设置一个宽度,然后添加margin:0 auto属性 2 3 div{ 4 width:200px; 5 margin:0 auto; 6 } 让绝对定位的 ...

  10. OpenGL ES andoid学习————1

    package com.xhm.getaccount; import javax.microedition.khronos.egl.EGLConfig; import javax.microediti ...