我的另一篇博文中提到JavaScript 有哪些是假值,哪些是真值,對于 null、undefined、"",等一些假值,JavaScript 直接視為 false,
我有一個需求,判斷從瀏覽器中獲取的 Cookie 是否存在,如果存在我就回傳 true,否則回傳 false,useCookies().get(name)函式回傳 any 型別的值(VueUse 庫中的工具函式),而 undefined、null 都是 false,最簡單的實作是:
let isDefined = useCookies().get(name) ? true : false;
假如獲取的是 undefined、""、或 null,變數 isDefined 得到的布林值是 false,反之為 true,現在,我不使用二元邏輯運算子,通過雙感嘆號(!非運算子)實作同樣的效果,且代碼更簡潔,
?注意:JavaScript 的假值通過賦值運算子是不會被轉換成布林值的,也就是說,null 通過賦值運算子給另一個變數還是 null,只是在邏輯運算中(如 if、&&、||),這些假值才會被轉換成 false,
用!將假值轉換為 true,再加一個!把它轉換為 false,所以,簡化之后的代碼如下:
let isDefined = !!useCookies().get(name);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/503559.html
標籤:JavaScript
