簡體   English   中英

Javascript ifDefined輔助方法?

[英]Javascript ifDefined helper method?

Java中是否為isDefined提供輔助方法或類似方法? 我剛剛在繼承的實用程序文件中找到了它:

'use strict';

var me = {
    ifDefined           : ifDefined,
    ifDef               : ifDefined,
    isDefined           : isDefined,
    isDef               : isDefined,
};

function isDefined (value) {
    return (typeof value != 'undefined');
}
function ifDefined (value, defaultValue) {
    return isDefined(value) ? defaultValue : value;
}

module.exports = me;

看來作者正在使用它來進行typeof檢查的簡寫方法:

environment.u = isDef(envInfo.u, environment.u);
environment.x = isDef(envInfo.x, environment.x);
environment.s = isDef(envInfo.s, environment.s);

Java中是否為isDefined提供輔助方法或類似方法?

不,沒有內置函數。

僅使用value !== undefinedvalue != null足夠簡短,它不保證額外的實用程序功能。 我知道的唯一本地“類型檢查”方法是Array.isArrayisNaNisFinite (以及它們的Number.is…等效項)。

那沒有。 如果必須執行此操作,則不會為其創建實用程序文件。 通過使用速記變量和三元運算符,您可以在代碼中節省盡可能多的空間:

var udef = undefined;

environment.u = envInfo.u == udef ? environment.u : envInfo.u;
environment.x = envInfo.x == udef ? environment.x : envInfo.x;
environment.s = envInfo.s == udef ? environment.s : envInfo.s;

為了比較:

該函數似乎要做的是檢查值是否未定義,如果是,則返回默認值。 否則,它將返回原始值。 這個名稱有些讓人誤解,我不相信JavaScript會直接內置任何模仿ifDefined函數功能的東西。

如果您要查找的只是簡單地檢查是否已定義某些內容,則無需使用typeof您可以將其與全局undefined對象進行比較:

var x;
if(x !== undefined){
    console.log('this will not run');
}
else{
    console.log('this will run');
}

如果有興趣的話,可以多讀一些內容: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM