国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端學(xué)習(xí)——JS進(jìn)階 (Day4)

這篇具有很好參考價(jià)值的文章主要介紹了前端學(xué)習(xí)——JS進(jìn)階 (Day4)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

深淺拷貝

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
練習(xí)
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div></div>
  <script>
    function getTime(){
      document.querySelector('div').innerHTML = new Date().toLocaleString()
      setTimeout(getTime,1000)
    }
    getTime()
  </script>
</body>
</html>

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    const obj = {
      uname: 'pink',
      age: 18,
      hobby: ['乒乓球', '足球'],
      family: {
        baby: '小pink'
      }
    }
    const o = {}
    // 拷貝函數(shù)
    function deepCopy(newObj, oldObj) {
      debugger
      for (let k in oldObj) {
        // 處理數(shù)組的問題  一定先寫數(shù)組 在寫 對象 不能顛倒
        if (oldObj[k] instanceof Array) {
          newObj[k] = []
          //  newObj[k] 接收 []  hobby
          //  oldObj[k]   ['乒乓球', '足球']
          deepCopy(newObj[k], oldObj[k])
        } else if (oldObj[k] instanceof Object) {
          newObj[k] = {}
          deepCopy(newObj[k], oldObj[k])
        }
        else {
          //  k  屬性名 uname age    oldObj[k]  屬性值  18
          // newObj[k]  === o.uname  給新對象添加屬性
          newObj[k] = oldObj[k]
        }
      }
    }
    deepCopy(o, obj) // 函數(shù)調(diào)用  兩個(gè)參數(shù) o 新對象  obj 舊對象
    console.log(o)
    o.age = 20
    o.hobby[0] = '籃球'
    o.family.baby = '老pink'
    console.log(obj)
    console.log([1, 23] instanceof Object)
    // 復(fù)習(xí)
    // const obj = {
    //   uname: 'pink',
    //   age: 18,
    //   hobby: ['乒乓球', '足球']
    // }
    // function deepCopy({ }, oldObj) {
    //   // k 屬性名  oldObj[k] 屬性值
    //   for (let k in oldObj) {
    //     // 處理數(shù)組的問題   k 變量
    //     newObj[k] = oldObj[k]
    //     // o.uname = 'pink'
    //     // newObj.k  = 'pink'
    //   }
    // }
  </script>
</body>

</html>

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <!-- 先引用 -->
  <script src="./lodash.min.js"></script>
  <script>
    const obj = {
      uname: 'pink',
      age: 18,
      hobby: ['乒乓球', '足球'],
      family: {
        baby: '小pink'
      }
    }
    const o = _.cloneDeep(obj)
    console.log(o)
    o.family.baby = '老pink'
    console.log(obj)
  </script>
</body>

</html>

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    const obj = {
      uname: 'pink',
      age: 18,
      hobby: ['乒乓球', '足球'],
      family: {
        baby: '小pink'
      }
    }
    // 把對象轉(zhuǎn)換為 JSON 字符串
    // console.log(JSON.stringify(obj))
    const o = JSON.parse(JSON.stringify(obj))
    console.log(o)
    o.family.baby = '123'
    console.log(obj)
  </script>
</body>

</html>

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

異常處理

throw 拋異常

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

try/catch 捕獲錯(cuò)誤信息

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

debugger

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

處理this

this指向——普通函數(shù)

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <button>點(diǎn)擊</button>
  <script>
    // 普通函數(shù):  誰調(diào)用我,this就指向誰
    console.log(this)  // window
    function fn() {
      console.log(this)  // window    
    }
    window.fn()
    window.setTimeout(function () {
      console.log(this) // window 
    }, 1000)
    document.querySelector('button').addEventListener('click', function () {
      console.log(this)  // 指向 button
    })
    const obj = {
      sayHi: function () {
        console.log(this)  // 指向 obj
      }
    }
    obj.sayHi()
  </script>
</body>

</html>

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

改變this

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    const obj = {
      uname: 'pink'
    }
    function fn(x, y) {
      console.log(this) // window
      console.log(x + y)
    }
    // 1. 調(diào)用函數(shù)  
    // 2. 改變 this 指向
    fn.call(obj, 1, 2)
  </script>
</body>

</html>

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

性能優(yōu)化

節(jié)流

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

案例

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
  <style>
    .box {
      width: 500px;
      height: 500px;
      background-color: #ccc;
      color: #fff;
      text-align: center;
      font-size: 100px;
    }
  </style>
</head>

<body>
  <div class="box"></div>
  <script>
    const box = document.querySelector('.box')
    let i = 1  // 讓這個(gè)變量++
    // 鼠標(biāo)移動函數(shù)
    function mouseMove() {
      box.innerHTML = ++i
      // 如果里面存在大量操作 dom 的情況,可能會卡頓
    }
    // console.log(mouseMove)
    // 節(jié)流函數(shù) throttle 
    function throttle(fn, t) {
      // 起始時(shí)間
      let startTime = 0
      return function () {
        // 得到當(dāng)前的時(shí)間
        let now = Date.now()
        // 判斷如果大于等于 500 采取調(diào)用函數(shù)
        if (now - startTime >= t) {
          // 調(diào)用函數(shù)
          fn()
          // 起始的時(shí)間 = 現(xiàn)在的時(shí)間   寫在調(diào)用函數(shù)的下面 
          startTime = now
        }
      }
    }
    box.addEventListener('mousemove', throttle(mouseMove, 500))

    // throttle(mouseMove, 500) === function () { console.log(1) }


    // box.addEventListener('mousemove', function () {
    //   // 得到當(dāng)前的時(shí)間
    //   let now = Date.now()
    //   // 判斷如果大于等于 500 采取調(diào)用函數(shù)
    //   if (now - startTime >= t) {
    //     // 調(diào)用函數(shù)
    //     fn()
    //     // 起始的時(shí)間 = 現(xiàn)在的時(shí)間   寫在調(diào)用函數(shù)的下面
    //     startTime = now
    //   }
    // })

  </script>
</body>

</html>

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

防抖

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript
前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript

前端學(xué)習(xí)——JS進(jìn)階 (Day4),前端,學(xué)習(xí),javascript文章來源地址http://www.zghlxwxcb.cn/news/detail-591499.html

到了這里,關(guān)于前端學(xué)習(xí)——JS進(jìn)階 (Day4)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 前端DAY4

    前端DAY4

    學(xué)習(xí)CSS的盒子模型。 px:像素;em:相對元素font-size的倍數(shù);rem:相對根(即html)字體大小;%:相對父元素來進(jìn)行計(jì)算。 注:CSS中設(shè)置長度必須加單位,否則樣式無效 。 1.塊元素 特點(diǎn) 1.在頁面中獨(dú)占一行 2.默認(rèn)寬度:撐滿父元素。默認(rèn)高度:由內(nèi)容撐開 3.可以通過CSS設(shè)置寬高

    2024年02月19日
    瀏覽(21)
  • day4:Node.js 核心庫

    day4:Node.js 核心庫

    常用工具模塊 Node.js有許多常用的工具,以下是一些常見的: util : 是一個(gè)Node.js 核心模塊,提供常用函數(shù)的集合,用于彌補(bǔ)核心 JavaScript 的功能 過于精簡的不足。 Lodash :Lodash是一個(gè)功能豐富的JavaScript實(shí)用工具庫,提供了許多用于處理數(shù)組、對象和其他常見數(shù)據(jù)結(jié)構(gòu)的方法

    2024年02月07日
    瀏覽(48)
  • Web 前端進(jìn)階—— JS 學(xué)習(xí)筆記

    目錄 一、JavaScript提升篇 1、什么是跨域? 2、什么是原型? 3、什么是閉包? 4、如何防抖? 5、TCP的三次握手和四次揮手 6、new 操作符原理 7、事件委托做了什么 8、事件代理是什么 9、Eventloop 10、 如何實(shí)現(xiàn)跨域 11、寫出原生 Ajax 12、暫時(shí)性死區(qū)是什么 13 、promise 解決回調(diào)陷阱的

    2024年04月26日
    瀏覽(29)
  • 微服務(wù)學(xué)習(xí)Day4

    微服務(wù)學(xué)習(xí)Day4

    2024年02月19日
    瀏覽(22)
  • c++學(xué)習(xí)(day4)

    c++學(xué)習(xí)(day4)

    友元是一種定義在類外部的普通函數(shù)或類 1.1 全局函數(shù)作為友元函數(shù) 聲明一個(gè)全局函數(shù)作為類的友元函數(shù),則允許該全局函數(shù),訪問類中各個(gè)權(quán)限下的成員 在類中要將該函數(shù)進(jìn)行聲明:friend 全局函數(shù)頭; 1.2 類的成員函數(shù)作為友元函數(shù)(了解) 聲明一個(gè)其他類的成員函數(shù)作

    2023年04月23日
    瀏覽(18)
  • [前端系列第3彈]JS入門教程:從零開始學(xué)習(xí)JavaScript

    本文將帶領(lǐng)大家,從零開始學(xué)習(xí)JavaScript,fighting~ 目錄 一、JavaScript簡介 二、變量和數(shù)據(jù)類型 三、注釋和分號 四、算術(shù)運(yùn)算符 五、表達(dá)式和語句 六、代碼塊和作用域 七、函數(shù)(最重要)? ????????JavaScript(簡稱JS)是一種運(yùn)行在瀏覽器中的腳本語言,它可以讓網(wǎng)頁變得

    2024年02月13日
    瀏覽(95)
  • day4 驅(qū)動開發(fā) c語言學(xué)習(xí)

    不利用系統(tǒng)提供的register_chrdev,自己實(shí)現(xiàn)字符設(shè)備的注冊 底層代碼 led.c 應(yīng)用層代碼 app.c 頭文件 head.h

    2024年02月14日
    瀏覽(18)
  • 【C++】day4學(xué)習(xí)成果:仿寫string類等等

    【C++】day4學(xué)習(xí)成果:仿寫string類等等

    1.仿照string類,完成myString 類 代碼: 運(yùn)行結(jié)果: 2.思維導(dǎo)圖

    2024年02月09日
    瀏覽(17)
  • 數(shù)據(jù)結(jié)構(gòu)與算法學(xué)習(xí)(day4)——解決實(shí)際問題

    數(shù)據(jù)結(jié)構(gòu)與算法學(xué)習(xí)(day4)——解決實(shí)際問題

    在本章的學(xué)習(xí)此前,需要復(fù)習(xí)前三章的內(nèi)容,每個(gè)算法都動手敲一遍解題。寧愿學(xué)慢一點(diǎn),也要對每個(gè)算法掌握基本的理解! 前面我們學(xué)習(xí)了簡化版桶排序、冒泡排序和快速排序三種算法,今天我們來實(shí)踐一下前面的三種算法。 本章的學(xué)習(xí)目標(biāo): (1)回顧三個(gè)算法的基本原

    2024年02月09日
    瀏覽(27)
  • 數(shù)學(xué)建模學(xué)習(xí)筆記day4——層次化分析

    數(shù)學(xué)建模學(xué)習(xí)筆記day4——層次化分析

    層次分析主要有三大典型應(yīng)用 (1)用于最佳方案的選取 (2)用于評價(jià)類問題 (3)用于指標(biāo)體系的優(yōu)選 層次分析法是根據(jù)問題的性質(zhì)和要達(dá)成的目標(biāo),將問題分解為不同的組成因素,將因素按不同層次聚集組合,形成一個(gè)多層次的分析結(jié)構(gòu)模型,最終問題歸結(jié)為最低層(決

    2024年02月09日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包