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

Web前端 Javascript筆記3

這篇具有很好參考價值的文章主要介紹了Web前端 Javascript筆記3。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、垃圾回收機制

?內(nèi)存中的生命周期

? ? ? ? 1、內(nèi)存分配

? ? ? ? 2、內(nèi)存使用(讀寫)

? ? ? ? 3、內(nèi)存回收,使用完畢之后,垃圾回收器完成

? ? ? ? 內(nèi)存泄漏:該回收的,由于某些未知因素,未釋放,叫做內(nèi)存泄漏

棧:數(shù)據(jù)存在其中會自動釋放

堆:對象,根據(jù)程序員的操作來決定釋放

一、引用計數(shù)法? ?

? ? ? 1、記錄引用次數(shù)

? ? ? 2、計數(shù) ++? 或者 --

? ? ? 3、引用次數(shù)為0時,釋放內(nèi)存

原理:跟蹤記錄每個值被引用的次數(shù)。

當垃圾收集器下一次運行時,它就會釋放引用次數(shù)是0的值所占的內(nèi)存。

如果一個對象已經(jīng)沒有指向他的引用了,那么就認為不在需要,

循環(huán)引用的內(nèi)存,無法被釋放?

let obj1={
            uname:"lisi"
        }
        let a=obj1//存的是內(nèi)存地址,引用計數(shù)為2
        a=null//--,引用計數(shù)為1
        //缺點:占內(nèi)存消耗; 循環(huán)引用問題,內(nèi)存無法被釋放

看看這個

兩個對象被創(chuàng)建,并互相引用,形成了一個循環(huán)。

無法計數(shù)無法為0,他們的計數(shù)均為1,無法釋放,

計數(shù)算法考慮到它們互相都有至少一次引用,所以它們不會被回收。

let obj2={
        a:obj3
        }
let obj3={
        b:obj2
        }
obj2 = null

二、標記清除

? ? 垃圾回收器將定期從根開始,找所有從根開始引用的對象,然后找這些對象引用的對象……從根開始,垃圾回收器將找到所有可以獲得的對象和收集所有不能獲得的對象。

循環(huán)引用不再是問題了

在上面的示例中,函數(shù)調(diào)用返回之后,兩個對象從全局對象出發(fā)無法獲取。因此,他們將會被垃圾回收器回收。


2、閉包

在 JavaScript 中,閉包會隨著函數(shù)的創(chuàng)建而被同時創(chuàng)建。

內(nèi)層函數(shù)+外層函數(shù)的變量 與函數(shù),內(nèi)層函數(shù)使用了外層函數(shù)的變量

   function outer() {
            let i = 10
            function inner() {
                console.log(i)
            }
            return inner//外部函數(shù)調(diào)用內(nèi)部函數(shù)實現(xiàn)功能

        }
        let a = outer()
        a()
        a()    //輸出兩次10

?外部可以訪問函數(shù)內(nèi)部的變量

閉包會在父函數(shù)外部,改變父函數(shù)內(nèi)部變量的值。

下面這個函數(shù),他不是改變了全局變量,而是函數(shù)可以訪問全局變量并且利用表達式與打印,進行函數(shù)內(nèi)部的輸出表達,當出了這塊函數(shù),全局變量num還是0.

JavasSript 語言的特別之處就在于:函數(shù)內(nèi)部可以直接讀取全局變量,但是在函數(shù)外部無法讀取函數(shù)內(nèi)部的局部變量。

   let num = 0
        function test1() {

            num++
            console.log(`這是函數(shù)調(diào)用的第${num}次`)
        }

        test1()
        test1()
        num = 300
        test1()

Web前端 Javascript筆記3,筆記,javascript

閉包函數(shù)?

一個函數(shù)的返回值是一個內(nèi)部函數(shù),并且這個內(nèi)部函數(shù)調(diào)用了父級函數(shù)的變量。

   <script>
        function outer() {
            let num = 0
            function inner() {
                num++
                console.log(`這是函數(shù)調(diào)用的第${num}次`)

            }
            return inner
        }

        let a = outer()
        a()
        a()
        a()
        num = 21
        a()
  </script>

Web前端 Javascript筆記3,筆記,javascript


3、Math對象

是一個內(nèi)置對象,它擁有一些數(shù)學常數(shù)屬性和數(shù)學函數(shù)方法。

來看看常用的數(shù)學成員,更多的成員可以上網(wǎng)查。

成員 作用
E 歐拉常數(shù),也是自然對數(shù)的底數(shù),約等于?2.718
PI 獲取圓周率,結(jié)果為3.141592653589793。
abs(x) 返回一個數(shù)的絕對值。
sqrt(x) 獲取x的平方根
cbrt(x) 返回一個數(shù)的立方根。
max(x) 返回零到多個數(shù)值中最大值。
min(x) 返回零到多個數(shù)值中最小值。
pow(x,y) 返回一個數(shù)的 y 次冪。
ceil(x) 向上取整。
floor(x) 向下取整。
round(x)

返回四舍五入后的整數(shù)。

random 返回一個 0 到 1 之間的偽隨機數(shù)。隨機數(shù)[0,1)
log(x) 返回一個數(shù)的自然對數(shù)(㏒e,即 ㏑)。
log2(x)/log(x) 返回一個數(shù)以 2或者10 為底數(shù)的對數(shù)。
sign(x) 返回一個數(shù)的符號,得知一個數(shù)是正數(shù)、負數(shù)還是 0

獲取n~m的隨機數(shù)

console.log(Math.floor(Math.random()*((n-m)+1))+m)


4、Date對象

創(chuàng)建Date對象,將返回一個字符串,以下是四種創(chuàng)建方法

let d1 = new Date();? ? ?//獲取當前時間
let d2= new Date(milliseconds); // 參數(shù)為毫秒
let d3 = new Date(dateString);
let d4 = new Date(year, month, day, hours, minutes, seconds, milliseconds);

  • milliseconds?參數(shù)是一個 Unix 時間戳,它是一個整數(shù)值,表示自 1970 年 1 月 1 日 00:00:00 UTC(the Unix epoch)以來的毫秒數(shù)。

  • dateString?參數(shù)表示日期的字符串值。

  • year, month, day, hours, minutes, seconds, milliseconds?分別表示年、月、日、時、分、秒、毫秒。

 <script>
    let today=new Date()
    console.log('today='+today)
    let d1 = new Date("October 13, 1975 11:13:00")
    console.log('d1='+d1)
    let d2=new Date("2022-2-17 23:03:46")
    console.log('d2='+d2)
    let d3=new Date(100000000000)
    console.log('d3='+d3)
    let d4=new Date(2018,8,19,6,26,21)
    console.log('d4='+d4)
    </script>

Web前端 Javascript筆記3,筆記,javascript

方法 描述
getDate() 從 Date 對象返回一個月中的某一天 (1 ~ 31)。
getDay() 從 Date 對象返回一周中的某一天 (0 ~ 6)。
getFullYear() 從 Date 對象以四位數(shù)字返回年份。
getHours() 返回 Date 對象的小時 (0 ~ 23)。
getMinutes() 返回 Date 對象的分鐘 (0 ~ 59)。
getMouth() 從 Date 對象返回月份 (0 ~ 11)。
getSeconds() 返回 Date 對象的秒數(shù) (0 ~ 59)。

getMilliseconds()

返回 Date 對象的毫秒數(shù) (0 ~ 59)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒數(shù)(0~999。
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒數(shù)。
setDate() 設(shè)置 Date 對象中月的某一天 (1 ~ 31)。
setFullYear() 設(shè)置 Date 對象中的年份(四位數(shù)字)。
setHours() 設(shè)置 Date 對象中的小時 (0 ~ 23)。
setMinutes() 設(shè)置 Date 對象中的分鐘 (0 ~ 59)。
setMouth() 設(shè)置 Date 對象中月份 (0 ~ 11)。
setSeconds() 設(shè)置 Date 對象中的秒鐘 (0 ~ 59)。
setTime() setTime() 方法以毫秒設(shè)置 Date 對象。
setYear() 已廢棄。請使用 setFullYear() 方法代替。
toDateString() 把 Date 對象的日期部分轉(zhuǎn)換為字符串。
toString() 把 Date 對象轉(zhuǎn)換為字符串。
toTimeString() 把 Date 對象的時間部分轉(zhuǎn)換為字符串。
UTC() 根據(jù)世界時返回 1970 年 1 月 1 日 到指定日期的毫秒數(shù)。

舉個例子?

    <script>
    let date=new Date()
    console.log(date+'')

    let y=date.getFullYear()
    console.log(y+'年')

    let m=date.getMonth()
    console.log(m+'月')

    let day = date.getDate()
    console.log(day+'號')

    // 時分秒
    let hh = date.getHours()
    let mm = date.getMinutes()
    let ss = date.getSeconds()
    console.log(hh+'時')
    console.log(mm+'分')
    console.log(ss+'秒')

    let w = date.getDay()
    console.log('星期'+w)
    console.log(date.toString()+' toString()')
    console.log(date.toTimeString()+' toTimeString()')
    console.log(date.toDateString()+' toDateString()')
    </script>

Web前端 Javascript筆記3,筆記,javascript?


??

5、展開運算符

關(guān)于數(shù)組內(nèi)全部元素的輸出,除了遍歷,還有沒有不遍歷的方法??

假如有一個數(shù)組,你要如何將其中的元素不遍歷也可以輸出?

let a=[3,2,11]

我想大家一般直接這樣:

?let c=a[0]

?let c1=a[1]

?let c2=a[2]

那么問題來了,要是,數(shù)組里的元素有上萬個呢,雖然有點夸張,但是,它不能被忽視對吧

哈哈,不裝了,介紹一下一個運算符,它是三個英文的句號

展開運算符...

不僅是數(shù)組,還有字符串也可用

 <script>
        let a=[3,2,11]
        //...展開運算符,可以把數(shù)組與對象展開
        document.write(...a+'<br>')//將列表拆開
        document.write(Math.max(...a))//不可以接數(shù)組與對象,可以是一串數(shù)字
    </script>

Web前端 Javascript筆記3,筆記,javascript?


6、獲取元素對象

在 HTML DOM 中,?元素對象代表著一個 HTML 元素。

方法

document.getElementById()

document.getElementsByClassName()

返回文檔中所有指定類名的元素集合

document.getElementsByName()

document.getElementsByTagName()

返回指定標簽名的所有子元素集合。

?Document.querySelector("選擇器")

拿到滿足第一個。

querySelectorAll(" ")

拿到偽數(shù)組。

<body>
    <p>段落111</p>
    <p>段落222</p>
    <p>段落333</p>
    <p>段落444</p>
    <div>你是一個盒子111</div>
    <div>你是一個盒子222</div>
    <div>你是一個盒子333</div>
    <ul>
        <li>11111111小li</li>
        <li name="k2">2222222小li</li>
        <li class="f3">333333小li</li>
        <li id="d4">4444444小li</li>
    </ul>
    <script>
    let k2=document.getElementsByName("k2")
    console.log(k2)
    let f3=document.getElementsByClassName("f3")
    console.log(f3)
    let d4=document.getElementById("d4")
    console.log(d4)
    let d=document.getElementsByTagName("div")

    let p1=document.querySelector("p")
    console.log(p1)
    let p2=document.querySelectorAll("p")
    console.log(p2)
    for (let i in p2) {
            console.log(p2[i])
        }
    </script>
</body>

Web前端 Javascript筆記3,筆記,javascript文章來源地址http://www.zghlxwxcb.cn/news/detail-852085.html

到了這里,關(guān)于Web前端 Javascript筆記3的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • web前端Javascript—7道關(guān)于前端的面試題

    本文主要是web前端Javascript—的面試題,附上相關(guān)問題以及解決答案,希望對大家web前端Javascript閉包的學習有所幫助。 每個JavaScript 程序員都必須知道閉包是什么。在 JavaScript 面試中,你很可能會被問到的問題 以下是 7 個有關(guān) JavaScript的面試題,比較有挑戰(zhàn)性。不要查看答案

    2024年02月03日
    瀏覽(98)
  • 2023年web前端開發(fā)之JavaScript進階(一)

    2023年web前端開發(fā)之JavaScript進階(一)

    接上篇博客進行學習,通俗易懂,詳細 博客地址: 2023年web前端開發(fā)之JavaScript基礎(chǔ)(五)基礎(chǔ)完結(jié)_努力的小周同學的博客-CSDN博客 學習 作用域 、變量提升、 閉包 等語言特征,加深對 JavaScript 的理解,掌握變量賦值、函數(shù)聲明的簡潔語法, 降低代碼的冗余度 。 理解作用域?qū)Τ绦?/p>

    2024年02月03日
    瀏覽(37)
  • web前端框架JS學習之JavaScript類型轉(zhuǎn)換

    web前端框架JS學習之JavaScript類型轉(zhuǎn)換

    vascript有多種數(shù)據(jù)類型,如字符串、數(shù)字、布爾等,可以通過typeof語句來查看變量的數(shù)據(jù)類型。數(shù)據(jù)類型轉(zhuǎn)換就是數(shù)據(jù)類型之間相互轉(zhuǎn)換,比如把數(shù)字轉(zhuǎn)成字符串、把布爾值轉(zhuǎn)成字符串、把字符串轉(zhuǎn)成數(shù)字等,這在工作也是經(jīng)常碰到的。 本期我們就給大家說說web前端框架JS學

    2024年02月10日
    瀏覽(90)
  • 前端進化筆記-JavaScript(三)

    人類在白色的底色上描繪圖畫,地球在黑色的底色上創(chuàng)造生命。 JavaScript的變量可以說是獨樹一幟。只需要一個(或兩個等)(const,let)就可以創(chuàng)建變量,創(chuàng)建時不考慮變量的類型,這是其他語言少有的強大功能。當然強大的功能總是伴隨著問題。 原始值:Undefined,

    2024年02月08日
    瀏覽(25)
  • 【前端學習筆記2】javaScript基礎(chǔ)

    是一種運行在客戶端(服務(wù)器的編程語言) javacript分為行內(nèi)JavaScript,內(nèi)部JavaScript,外部JavaScript 內(nèi)部JavaScript 直接寫在html中body里面 alert(“hello,world”) 我們將script放在html文件的地步附近的原因是瀏覽器會按照代碼在文件中的順序加載html 如果先加載的JavaScript期望修改其

    2024年01月22日
    瀏覽(55)
  • Web前端大作業(yè)制作個人網(wǎng)頁(html+css+javascript)

    Web前端大作業(yè)制作個人網(wǎng)頁(html+css+javascript)

    ??個人網(wǎng)頁設(shè)計、???♂?個人簡歷制作、?????簡單靜態(tài)HTML個人網(wǎng)頁作品、?????個人介紹網(wǎng)站模板 、等網(wǎng)站的設(shè)計與制作。 ?個人網(wǎng)頁設(shè)計網(wǎng)站模板采用DIV CSS布局制作,網(wǎng)頁作品有多個頁面,如 :個人介紹(文字頁面)、我的作品(圖片列表)、個人技能(圖文頁

    2024年02月10日
    瀏覽(32)
  • 19個Web前端交互式3D JavaScript框架和庫

    19個Web前端交互式3D JavaScript框架和庫

    JavaScript (JS) 是一種輕量級的解釋(或即時編譯)編程語言,是世界上最流行的編程語言。JavaScript 是一種基于原型的多范式、單線程的動態(tài)語言,支持面向?qū)ο蟆⒚钍胶吐暶魇剑ɡ绾瘮?shù)式編程)風格。JavaScript 幾乎可以做任何事情,更可以在包括物聯(lián)網(wǎng)在內(nèi)的多個平臺

    2024年02月22日
    瀏覽(21)
  • [HTML]Web前端開發(fā)技術(shù)26(HTML5、CSS3、JavaScript )JavaScript基礎(chǔ)——喵喵畫網(wǎng)頁

    [HTML]Web前端開發(fā)技術(shù)26(HTML5、CSS3、JavaScript )JavaScript基礎(chǔ)——喵喵畫網(wǎng)頁

    希望你開心,希望你健康,希望你幸福,希望你點贊! 最后的最后,關(guān)注喵,關(guān)注喵,關(guān)注喵,佬佬會看到更多有趣的博客哦?。。?喵喵喵,你對我真的很重要! 目錄 前言 數(shù)據(jù)類型 數(shù)據(jù)類型-字符型 數(shù)據(jù)類型-數(shù)值型 數(shù)據(jù)類型-布爾型 數(shù)據(jù)類型-其它類型 變量 轉(zhuǎn)義字符 運算

    2024年02月20日
    瀏覽(34)
  • JavaScript-Web學習筆記01

    JavaScript-Web學習筆記01

    1、Web API Web API 是瀏覽器 提供的一套操作 瀏覽器功能 和 頁面元素 的 API (BOM 和 DOM)。 2、總結(jié) API 是為我們提供的一個接口,幫助我們實現(xiàn)某種功能 Web API 主要是針對瀏覽器提供的接口,主要針對瀏覽器做交互效果。 Web API 一般都有輸入和輸出(函數(shù)的傳參和返回值),

    2024年04月09日
    瀏覽(22)
  • 前端學習筆記:JavaScript基礎(chǔ)語法(ECMAScript)

    前端學習筆記:JavaScript基礎(chǔ)語法(ECMAScript)

    此博客參考b站:【黑馬程序員前端JavaScript入門到精通全套視頻教程,javascript核心進階ES6語法、API、js高級等基礎(chǔ)知識和實戰(zhàn)教程】https://www.bilibili.com/video/BV1Y84y1L7Nn?p=76vd_source=06e5549bf018e111f4275c259292d0da 這份筆記適用于已經(jīng)學過一門編程語言(最好是C語言)的同學,如果你沒有

    2024年02月16日
    瀏覽(67)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包