js中!的用法是比較靈活的,它除了做邏輯運算常常會用!做型別判斷,可以用!與上物件來求得乙個布林值,
1、!可將變數轉換成boolean型別,null、undefined和空字串取反都為false,其餘都為true。
!null=true
!undefined=true
!''=true
!100=false
!'abc'=false
2、!!常常用來做型別判斷,在第一步!(變數)之後再做邏輯取反運算,在js中新手常常會寫這樣臃腫的**:
判斷變數a為非空,未定義或者非空串才能執行方法體的內容:
var a;
if(a!=null&&typeof(a)!=undefined&&a!='')
實際上我們只需要寫乙個判斷表達:
if(!!a)
就能和上面達到同樣的效果。a是有實際含義的變數才執行方法,否則變數null,undefined和''空串都不會執行以下**。
可以總結出來,「!」是邏輯與運算,並且可以與任何變數進行邏輯與將其轉化為布林值,「!!」則是邏輯與的取反運算,尤其後者在判斷型別時**簡潔高效,省去了多次判斷null、undefined和空字串的冗餘**。
ES6的語法及用法
1.結構賦值 解構賦值主要是針對於陣列和物件的 真實專案中,一般常用於把從伺服器獲取的json資料進行快速解構,賦值給對應的變數,幫助我們快速拿到對應的結果 let arr 100,200,300,400,500 let a,b,c,d arr console.log a,b,c,d 100 200...
js,新增ES6 語法
一,生名變數 1.let 可以更加規範的編寫 具有全域性性 let a 100let b 200function fun fun 2.const 定義後的變數,將會無法更改 const a 100 console.log a 100 a 200 console.log a 跑錯 二,賦值1,傳統賦值...
es6中reduce的用法 Es6基礎語法
1 this this代表當前正在執行的物件 function fn fn window const obj new fn fn.call 2 箭頭函式 1 箭頭函式的this是在定義的時候就固定不變了 2 箭頭函式 沒有自己的this 3 箭頭函式 不能當類 構造器 使用 不可以 new 4 箭頭...