Cleaner way to write this code
我有以下代码可以很好地工作,但是我两次调用
1 2 3 4 5 6 | if(localStorage.getItem("preferences") == null { //show set preferences page } else { var preferences = localStorage.getItem("preferences"); //do stuff } |
希望这有帮助
1 2 3 | let preferences = localStorage.getItem("preferences"); preferences ? do stuff : show set preferences page |
1 2 3 4 5 6 | var preferences = localStorage.getItem("preferences"); if(!!preferences){ //check if preferences is undefined or false or null //show set preferences page } else { //do stuff } |
1 2 3 4 5 6 7 | var preferences = localStorage.getItem("preferences"); if(preferences) { //Show preference page } else { //Do something } |
如果本地存储的值为空,您仍然可以将其分配给var,然后对照它进行检查。
此外,您可以简单地检查if语句中的var,而不必与空值进行比较。以下列为例:
1 2 3 | if(!a) { //Will enter here if a is null, undefined, false, empty string, 0 or NaN } |
进一步阅读:http://james.padolsey.com/javascript/truthy-false/
只需执行一次
1 2 3 4 5 6 | var preferences = localStorage.getItem("preferences"); if (preferences == null) { //show set preferences page } else { //do stuff } |
除非
1 2 3 4 5 6 | var preferences = localStorage.getItem("preferences"); if (preferences) { //do stuff } else { //show set preferences page } |
作为一种替代方法,您可以在if语句本身中指定首选项,并执行以下操作:
1 2 3 4 5 6 | if ((preferences = localStorage.getItem("preferences"))) { // use preferences here } else { // set preferences here } |
我通常在只有我将要处理的情况下使用这种方法,在条件内分配可能会在调试时使一些人感到困惑。
简单!
1 2 3 4 5 6 7 8 | var preferences = localStorage.getItem("preferences"); if(preferences == null) { //show set preferences page } else { //do stuff with preferences } |
调用一次并将其存储在变量中。
1 2 3 4 5 6 7 | var preferences = localStorage.getItem("preferences"); if(preferences==null){ //.... } else{ //.... } |
不需要两次读取localstorage.getitem。您可以将其读取到变量中并使用相同的值。
1 2 3 4 5 6 7 | var preferences = localStorage.getItem("preferences"); if (preferences == null) { //show set preferences page } else { //you can use this preferences here //do stuff } |
希望它有帮助