變量及邏輯運算符

對象理解:

    對象 = 屬性 + 方法

    innerHTML:讀寫(獲取和設置)元素對象內部的內容,包含標籤

    對象名.onclick = function() { //點擊後執行後面的花括號裏面的代碼。

            對象名.innerHTML = 事件;

        }

變量的類型:

    typeof():檢測數據的類型,使用時typeof後面的括號可以省略

    一、變量的數據類型(6種)

        1、基本類型(5種)

        number數字  string字符串  boolean布爾值  null空對象   undefined未初始化

            1.1.number數字類型,任何情況下直接賦值。

            1.2.string字符串:字符串必須添加引號(單雙引號都可以,但是注意單雙引號的嵌套關係)

            1.3.boolean布爾值:布爾值只有兩個true和false分別表示真和假。

            1.4.特殊類型:null和undefined

        2.複雜類型(引用類型)(1種)

            引用類型 - object(對象)

        

        總結:

            1.typeof檢測的是值的類型

            2.區分undefined爲值和爲類型的區別。

            3.typeof無法輸出null類型,null的類型是object

            4.js的兩種特殊的數據類型是:null和undefined

賦值、數學、關係運算符

    一、賦值運算符: =

           複合賦值運算符: +=  -=  *=  /=  %=

    二、數學運算符: "  +  -  *  /  %  "

        1.  加號+ : 加法運算   字符串的拼接。

            如果+號兩邊有任意一邊是字符串,+號就是拼接

            如果字符串數字通過在前面添加一個+號,將這個字符串數字轉換成真正的數字

        2.  %:取餘,求模 - 求餘數

        3.  -  *  /

    三.關係運算符

        1.>  >=  <  <=

        2. ==  ===  != !== 

            ==:比較的是值是否相等,和類型無關,具有隱式轉換(符號自動實現),最終轉換的結果一定是數字

            null和undefined相等的,系統約定的

        3. !=:值不相等

        4. ===:全等或者恆等,比較的是值和類型都要相等

        5. !==:不全等或者不恆等

        面試:== 和 ===的區別

            ==比較的是值是否相等,和類型無關. ===全等或者恆等,比較的是值和類型都要相等

            ==具有隱式轉換,===沒有

顯式轉換:強制轉換,通過系統的函數(方法)進行轉換

    一、系統下面提供了三個函數(方法)進行強制轉換  -  Number  /  String  /  Boolean。

        1、Number():括號裏面的值轉換成數字,包括字符串數字,如果不能轉換輸出NaN

        2、String():括號裏面的值強制轉換成字符串

        3、Boolean():將括號裏面的值強制轉換成布爾值

            規律:數字非0即真    字符串非空即真    undefined  null都是假(false)

    二、window下面提供兩個方法  -  parseInt()  parseFloat()轉換

        1、parseInt():將括號裏面的字符串轉換成整數,從第一個字符爲數字開始,碰到非數字結束。如果第一個字符都不是數字,輸出NaN

        parseInt括號裏面可以放置兩個值,第一個值:字符串  第二個值:進制值(二進制,八進制,十進制,十六進制)

        2、parseFloat():和parseInt類似,不過可以獲取字符串存在的小數,沒有第二個值

        3、其他方法

            toFixed():數字下面的方法,保留對應的小數位數,參數就是保留的小數位數

            採用銀行家算法。

            【銀行家算法】是一個避免死鎖(Deadlock)的著名算法,是由艾茲格·迪傑斯特拉在1965年爲T.H.E系統設計的一種避免死鎖產生的算法。它以銀行借貸系統的分配策略爲基礎,判斷並保證系統的安全運行。

            isNaN():檢測括號裏面的值是否是一個數字,不是一個數字輸出true

            隱式轉換:系統自動根據當前的符號進行轉換。+ - * /  %  ==  ++  --  !  ......

邏輯運算符:&&與    ||或    !非

    一、邏輯與(&&)

        1.邏輯與(&&)操作可以應用於任何類型的操作數,而不僅僅是布爾值。

        2.在有一個操作數不是布爾值的情況下,邏輯與操作就不一定返回布爾值。

        3.邏輯與操作屬於短路操作,即如果第一個操作數能夠決定結果,那麼就不會再對第二個操作數求值。

        過程1:如果第一個操作數爲真,繼續後續的操作數,結果就是第一個不爲真的值,或者最後一個爲真的值。

        過程2:如果第一個操作數爲假,結果就是第一個操作數的值,包括第二個操作數在內的直接跳過。(短路操作:不執行後續操作)

    二、邏輯或(||)

        邏輯或(||)和邏輯與操作相似,如果有一個操作數不是布爾值,邏輯或結果也不一定返回布爾值

        邏輯或操作符也是短路操作符。也就是說,如果第一個操作數的求值結果爲true ,就不會對第二個操作數求值了。

        過程1:如果第一個操作數爲真,結果就是第一個操作數的值,後續跳過(短路)

        過程2:如果第一個操作數爲假,後續操作如果是真,返回當前值,如果是假繼續執行,輸出最後的結果。

    

    總結:邏輯與不要碰到假,邏輯或不要碰到真

    三、邏輯非(!)

        結果一定是布爾值,取反

一元運算符

    只能操作一個值的操作符叫做一元操作符,是ECMAscript中最簡單的操作符

    1、前置型應該位於操作的變量之前,先將操作數+1或者-1,再參與運算

    2、後置運算符應該位於要操作的變量之後,先參與運算後,自身再+1或者-1

其他內容

    1、計算小數

        小數相加出現誤差

        解決方式:擴大值方式

    2、比較問題(數字、字符串、中文)

        Unicode編碼:全世界的每一個符號都對應一個數字

        localeCompare(目標字符串)字符串的方法,本地字符串的方式進行比較

        0    相等的情況

        1    當前的字符串>目標字符串

        -1    當前的字符串<目標字符串

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章