是否有一个通用的JavaScript函数来检查变量是否有值,并确保它不是未定义的或空的?我有这个代码,但我不确定它是否涵盖所有情况:
function isEmpty(val){
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
是否有一个通用的JavaScript函数来检查变量是否有值,并确保它不是未定义的或空的?我有这个代码,但我不确定它是否涵盖所有情况:
function isEmpty(val){
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
当前回答
如果您喜欢纯javascript,请尝试以下操作:
/**
* Checks if `value` is empty. Arrays, strings, or `arguments` objects with a
* length of `0` and objects with no own enumerable properties are considered
* "empty".
*
* @static
* @memberOf _
* @category Objects
* @param {Array|Object|string} value The value to inspect.
* @returns {boolean} Returns `true` if the `value` is empty, else `false`.
* @example
*
* _.isEmpty([1, 2, 3]);
* // => false
*
* _.isEmpty([]);
* // => true
*
* _.isEmpty({});
* // => true
*
* _.isEmpty('');
* // => true
*/
function isEmpty(value) {
if (!value) {
return true;
}
if (isArray(value) || isString(value)) {
return !value.length;
}
for (var key in value) {
if (hasOwnProperty.call(value, key)) {
return false;
}
}
return true;
}
否则,如果您已经使用下划线或lodash,请尝试:
_.isEmpty(value)
其他回答
function isEmpty(value){
return (value == null || value.length === 0);
}
对于
undefined // Because undefined == null
null
[]
""
和零参数函数,因为函数的长度是它所使用的声明参数的数量。
要禁止后一个类别,您可能只需要检查空白字符串
function isEmpty(value){
return (value == null || value === '');
}
Null或空白
function isEmpty(value){
return (value == null || value.trim().length === 0);
}
这将检查不确定嵌套的变量是否未定义
function Undef(str)
{
var ary = str.split('.');
var w = window;
for (i in ary) {
try { if (typeof(w = w[ary[i]]) === "undefined") return true; }
catch(e) { return true; }
}
return false;
}
if (!Undef("google.translate.TranslateElement")) {
上面检查Google翻译函数TranslateElement是否存在。这相当于:
if (!(typeof google === "undefined"
|| typeof google.translate === "undefined"
|| typeof google.translate.TranslateElement === "undefined")) {
你做得有点过头了。要检查变量是否没有给定值,只需要检查undefined和null。
function isEmpty(value){
return (typeof value === "undefined" || value === null);
}
这是假设0、“”和对象(甚至是空对象和数组)是有效的“值”。
function isEmpty(val){
return !val;
}
但是这个解决方案是过度设计的,如果您不想稍后根据业务模型的需要修改函数,那么直接在代码中使用它会更干净:
if(!val)...
可以直接使用相等运算符
<script>
var firstName;
var lastName = null;
/* Since null == undefined is true, the following statements will catch both null and undefined */
if(firstName == null){
alert('Variable "firstName" is undefined.');
}
if(lastName == null){
alert('Variable "lastName" is null.');
}
</script>
demo@如何使用JavaScript确定变量是否未定义或为空