對象理解:
對象 = 屬性 + 方法
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 當前的字符串<目標字符串