函数 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

相关文章
|
8月前
|
XML JavaScript API
BOM 和 DOM 的关系
BOM 和 DOM 的关系
|
8月前
|
存储 JavaScript 前端开发
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(一)
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(一)
34 0
|
8月前
|
XML 编解码 JavaScript
JS中的BOM和DOM的介绍与使用
JS中的BOM和DOM的介绍与使用
53 0
|
8月前
|
XML JavaScript 前端开发
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(二)
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(二)
26 0
|
9月前
|
JavaScript
DOM
DOM DOM获取元素 事件三要素 鼠标事件 元素改变 修改属性 表单属性设置 元素样式改变 通过class类名改变 排他思想 获取自定义属性 父节点操作 子节点操作 兄弟节点 创造和添加节点 删除节点 复制节点 注册事件 删除事件 阻止默认行为 阻止事件冒泡 事件委托 常用鼠标事件 键盘事件 BOM事件 页面加载 调整窗口事件 定时器 停止计时器 Location对象 History对象 Offsetleft获取元素偏移 Offset与style的区别 可视区client系列 滚动scroll系列 Mouseover和mousenter区别 动画原理 实现 动画封装 给不同对象添加定时器
71 0
|
29天前
|
JavaScript 前端开发
深入了解 JavaScript 中的 DOM 和 BOM
深入了解 JavaScript 中的 DOM 和 BOM
19 4
|
7月前
|
JavaScript 前端开发 Cloud Native
JavaScript的三大组成部分是什么?JavaScript的核心组成部分解析:语法、BOM和DOM
JavaScript的三大组成部分是什么?JavaScript的核心组成部分解析:语法、BOM和DOM
153 0
JavaScript的三大组成部分是什么?JavaScript的核心组成部分解析:语法、BOM和DOM
|
4月前
|
XML JavaScript 前端开发
JavaScript 之 DOM and BOM 总结
JavaScript 之 DOM and BOM 总结
30 0
|
5月前
|
XML 存储 JavaScript
JavaScript详解DOM和BOM(持续更新)
JavaScript详解DOM和BOM(持续更新)
|
5月前
|
XML JavaScript 前端开发
js中dom和bom有什么区别
js中dom和bom有什么区别
35 0