Javascript ifDefined助手方法?
Javascript中是否定义了Javascript ifDefined助手方法?,javascript,Javascript,Javascript中是否定义了isDefined的助手方法或类似方法?我刚刚在继承的实用程序文件中发现: 'use strict'; var me = { ifDefined : ifDefined, ifDef : ifDefined, isDefined : isDefined, isDef : isDefined, }; function isDefined
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;
作者似乎正在使用它为类型的检查提供一种速记方法:
environment.u = isDef(envInfo.u, environment.u);
environment.x = isDef(envInfo.x, environment.x);
environment.s = isDef(envInfo.s, environment.s);
Javascript中是否定义了isDefined
的助手方法或类似方法
不,不存在用于此的内置函数
只需使用value!==未定义的
或值!=null
足够短,不能保证额外的实用函数。我所知道的唯一本地“类型检查”方法是Array.isArray
、isNaN
和isFinite
(以及它们的Number.is…
等价物)
Javascript中是否定义了isDefined
的助手方法或类似方法
不,不存在用于此的内置函数
只需使用value!==未定义的
或值!=null
足够短,不能保证额外的实用函数。我所知道的唯一本地“类型检查”方法是Array.isArray
、isNaN
和isFinite
(以及它们的Number.is…
等价物)。此函数似乎要做的是检查值是否未定义,如果未定义,则返回默认值。否则,它将返回原始值。这个名字有点误导人,我不相信JavaScript中直接内置的任何东西会模仿ifDefined
函数的功能
如果您要查找的只是检查某个对象是否已定义,那么使用typeof
是不必要的-您可以简单地与全局未定义的对象进行比较:
var x;
if(x !== undefined){
console.log('this will not run');
}
else{
console.log('this will run');
}
如果有兴趣,可以额外阅读:
此函数的作用似乎是检查值是否未定义,如果未定义,则返回默认值。否则,它将返回原始值。这个名字有点误导人,我不相信JavaScript中直接内置的任何东西会模仿ifDefined
函数的功能
如果您要查找的只是检查某个对象是否已定义,那么使用typeof
是不必要的-您可以简单地与全局未定义的对象进行比较:
var x;
if(x !== undefined){
console.log('this will not run');
}
else{
console.log('this will run');
}
如果有兴趣,可以额外阅读:
没有。如果我必须这样做,我不会为它创建实用程序文件。通过使用速记变量和三元运算符,您可以在代码中节省同样多的空间:
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;
作为比较:没有。如果我必须这样做,我不会为它创建实用程序文件。通过使用速记变量和三元运算符,您可以在代码中节省同样多的空间:
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;
比较:你到底在问什么?typeof
运算符是检查标识符是否已定义的方式。你希望有一个不同的内置软件吗?这些函数有什么问题?我在问是否存在这样的速记方法。作者创建此文件似乎是为了在其代码中不包含typeof
调用。然后,不存在内置的isDefined
。下次尝试搜索MDN:,。你到底在问什么?typeof
运算符是检查标识符是否已定义的方式。你希望有一个不同的内置软件吗?这些函数有什么问题?我在问是否存在这样的速记方法。作者创建此文件似乎是为了在其代码中不包含typeof
调用。然后,不存在内置的isDefined
。下次尝试搜索MDN:。