前端學習筆記js篇(2)

2021-08-21 06:24:00 字數 1983 閱讀 7884

1. ==和===

js中==運算會先將兩邊的資料型別進行轉換,如: 1=='1',會先把'1'轉換成1,再進行比較,結果自然是true

而===運算是將兩邊的資料進行完全比較,資料型別和數值必須完全相同。因此1==='1',結果自然是false

被比較值 b

undefined

null

number

string

boolean

object

被比較值 a

undefined

truetruefalsefalsefalseisfalsy(b)

null

truetruefalsefalsefalseisfalsy(b)

number

falsefalsea === ba === tonumber(b)a=== tonumber(b)a=== toprimitive(b)

string

falsefalsetonumber(a) === ba === btonumber(a) === tonumber(b)toprimitive(b) == a

boolean

falsefalsetonumber(a) === btonumber(a) === tonumber(b)a === btonumber(a) == toprimitive(b)

object

false

false

toprimitive(a) == btoprimitive(a) == btoprimitive(a) == tonumber(b)

a === b

2.變數提公升

變數提公升即在js中宣告的變數會被提公升到當前函式作用域的頂部,下一以乙個例子進行解析

var a = 'aaa';

function b()

b();

console.log(a);

此時輸出的結果為

//undefined

//bbb

//aaa

由於存在變數提公升,上述**的實際執行順序為:

var a = 'aaa';

function b()

b();

console.log(a);

函式b內部的a的定義會被提公升到函式b的頂部,因此第乙個a的輸出是undefined。

那為什麼最後乙個a的輸出仍是aaa而不是bbb呢,這是因為當函式內部變數與函式外部變數同名時,內部讀取,修改的變數預設為內部變數,因此不會修改到外部的a(此時可以在內部通過使用this.a讀取外部的a)

3.js浮點數計算

js中存在浮點數計算不精確的問題,即:0.1+0.2不等於0.3,而是輸出0.3000000000004。

解決這個問題的方法是將浮點數運算改為非浮點數運算,即:(0.1*10+0.2*10)/10,輸出便為0.3

此處提一下js的四捨五入方法:

math.ceil(3.5) // 4

math.floor(3.5) // 3

math.round(3.5) // 4

前端js學習筆記 函式

函式使用分為兩步 宣告函式 和 呼叫函式 1.宣告函式 function 函式名 1 function是宣告函式的關鍵字,不能改動 2 函式不呼叫 自己不執行 2.呼叫函式 函式名 呼叫函式的時候一定要加小括號 3.函式的形參和實參 function 函式名 形參1,形參2 函式名 實參1,實參2 ...

前端學習筆記css篇(1)

1.響應式布局 常用的響應式布局方法 為不同解析度配置不同的css檔案 當解析度大於720px時 media screen and min width 720px 2.css動畫 css3的animation提供簡單的動畫效果,如設定透明度漸變 header keyframes c opacity ...

前端學習筆記Vue篇(3)

在vue專案開發過程中經常遇到這樣的情況 很多元件或者模組的結構相同,只不過是部分內容稍有不同。這種情況下,每次編寫相似的 不僅會增大工作量,還會讓 變得臃腫和冗餘。slot便是一種用來解決這種情況的簡潔方案,話不多說,上 父元件 test slot.vue 替換了name header 的slot...