函数 DOM BOM

简介: 函数 DOM BOM

函数

函数的定义

function后面没有名字匿名函数,使用一个变量来接受
image.png

image.png

注意事项

函数也有函数提升,函数表达式不能被提升,即在函数表达式之前不能调用函数,报错

image.png
形参和实参数量不同

image.png

递归

要有明确的终止条件,直到运行到不需要在递归的项

//斐波那契数列
function fib(n){
   
   
//第一项和第二项都是1
if(n==0||n==1) return 1
return fib(n-1)+fib(n-2)
}

局部变量

初次给变量赋值时,如果没有加var/let/const 则将定义全局变量

function fun(){
   
   
a=3;
}
fun();
console.log(a)//3

闭包

  • 闭包是函数本身和该函数声明时所处的环境状态的组合。
  • 每次创建函数时都会创建闭包
  • 当闭包产生时,函数所处环境的状态会始终保持在内存中,不会在外层函数调用后被自动清除。这就是闭包的记忆性。
  • 用途:模拟私有变量
  • 注意:不能滥用闭包,否则会造成网页的性能问题,严重时可能导致内存泄露。所谓内存泄漏是指程序中己动态分配的内存由于某种原因未释放或无法释放。
function addCount(){
   
   
var count = 0;
return function(){
   
   
count++;
console.log(count);
};
}
var fun1 = addCount();
var fun2 = addCount();
//调用两次外部函数,返回两个互不相关的内部函数
fun1()//1
fun2()//1
fun2()//2
fun1()//2

立即执行函数IIFE

(function(){})()

  • for循环的i是全局变量
    image.png

image.png

DOM

nodeType

image.png

获取节点的方法

image.png
都要在小括号(" "),不一定是document,也可以是其他node节点
getElementById:直接写id名字不用加#号,如果页面上有相同id的元素,则只能得到第一个
querySelector:页面上有相同id的元素,则只能得到第一个,

var p = document.querySelector('#box p:nth-child(1)');

延迟运行

image.png

节点关系

image.png

  • 文本节点,空白文本节点也是节点

只考虑元素节点

image.png

image.png

image.png
包括空白文本节点

innerhtml

image.png

改变元素节点的css样式

image.png

image.png
如何改变元素节点的HTML属性
image.png

添加节点

image.png
孤儿节点
image.png
插入节点

image.png

image.png
移动节点

image.png
删除节点

image.png
克隆节点

image.png

事件监听

image.png

image.png

事件对象

image.png

image.png

image.png

image.png

image.png

image.png

事件委托

image.png
注意事项
image.png

image.png

定时器,延时器

image.png

image.png

image.png
延时器类似

函数节流

image.png
image.png

无缝连续滚动

image.png

 <style>
    * {
   
   
      padding: 0;
      margin: 0;
    }
    .contain {
   
   
      height: 200px;
      width: auto;
      overflow: hidden;
    }
    li {
   
   
      height: 40px;
      width: auto;
    }
    #list {
   
   
      position: relative;
      top: 0;
      transition: top 2s linear 0s;
    }
  </style>
  <body>
    <div class="contain">
      <ul id="list">
        <li style="background-color: #234134">1</li>
        <li style="background-color: #2fffff">2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
      </ul>
    </div>
    <script>
      var thistop = 0;
      var op = document.querySelector(".contain");
      var op1 = document.querySelector("#list");
      op1.innerHTML += op1.innerHTML;

      clearInterval(po); //设表先关,防止动画累计
      //不能加var,要不然变成了局部变量,清除不了
   po = setInterval(function () {
   
   
        op1.style.transition = "top 1s linear 0s";
        if (thistop <= -200) {
   
   
          op1.style.transition = "none";
          op1.style.top = 0;
          thistop = -40;
          //设置一个延时器,这个延时器时间可以是0,虽然是0,但是可以让我们过渡先是瞬间消失,然后再加上
          setTimeout(function () {
   
   
            op1.style.transition = "top 1s linear 0s";
            op1.style.top = thistop + "px";
          }, 0);
        } 
        else {
   
   
          thistop -= 40;
          op1.style.top = thistop + "px";
        }
      }, 2000);
    </script>
  </body>

BOM(浏览器对象模型)

window对象

image.png

image.png

image.png
image.png

image.png

Navigator

image.png

History

image.png

Location

image.png

image.png

image.png

相关文章
|
11月前
|
XML JavaScript API
BOM 和 DOM 的关系
BOM 和 DOM 的关系
|
11月前
|
XML JavaScript 前端开发
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(二)
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(二)
34 0
|
2月前
|
前端开发 JavaScript 程序员
探索JavaScript宝库:打开基础知识与实用技能之门(数据类型与变量+ 条件与循环+函数与模块+DOM+异常+ES6)
探索JavaScript宝库:打开基础知识与实用技能之门(数据类型与变量+ 条件与循环+函数与模块+DOM+异常+ES6)
21 0
|
2月前
|
Web App开发 移动开发 JavaScript
探索 JavaScript 宇宙:DOM与BOM的星际邂逅
探索 JavaScript 宇宙:DOM与BOM的星际邂逅
|
3月前
|
XML JavaScript 前端开发
JavaScript简介&引入方式(JavaScript基础语法、JavaScript对象、BOM、DOM、事件监听)
JavaScript简介&引入方式(JavaScript基础语法、JavaScript对象、BOM、DOM、事件监听)
30 2
|
3月前
|
XML 存储 JavaScript
XML DOM 加载函数
`loadXMLString()`函数被封装在名为&quot;loadxmlstring.js&quot;的外部JavaScript文件中,用于加载XML文档。在示例HTML中,这个函数被调用来处理动态生成的XML字符串,该字符串描述了一本名为&quot;Everyday Italian&quot;的书籍信息。之后,可以在`code goes here.....`处进一步处理`xmlDoc`对象。
|
3月前
|
XML 存储 JavaScript
XML DOM 加载函数
`loadXMLDoc()` 是一个JavaScript函数,用于加载XML文档。它支持XMLHttpRequest和ActiveXObject,适应不同浏览器。函数定义存储在名为`loadxmldoc.js`的外部文件中,包含在HTML `&lt;head&gt;`标签内,然后在页面脚本中调用来获取XML数据,如`books.xml`。接下来的章节将介绍如何处理加载的数据。
|
3月前
|
JavaScript 前端开发
深入了解 JavaScript 中的 DOM 和 BOM
深入了解 JavaScript 中的 DOM 和 BOM
115 4
|
10月前
|
JavaScript 前端开发 Cloud Native
JavaScript的三大组成部分是什么?JavaScript的核心组成部分解析:语法、BOM和DOM
JavaScript的三大组成部分是什么?JavaScript的核心组成部分解析:语法、BOM和DOM
207 0
JavaScript的三大组成部分是什么?JavaScript的核心组成部分解析:语法、BOM和DOM
|
3月前
|
编解码 JavaScript 前端开发
BOM和DOM:BOM(浏览器对象模型)提供了与浏览器交互的能力,如弹窗、定时器等;DOM(文档对象模型)提供了操作HTML元素的能力,如获取、修改元素内容和属性。
BOM和DOM:BOM(浏览器对象模型)提供了与浏览器交互的能力,如弹窗、定时器等;DOM(文档对象模型)提供了操作HTML元素的能力,如获取、修改元素内容和属性。
58 2