如何检查Java脚本中的变量是否为空?
if(response.photo) is empty { do something else { do something else }
response.photo来自JSON,有时可能是空的,空的数据单元格!我想确认一下它是不是空的。
response.photo
9nvpjoqh1#
这取决于你所说的“空”是什么意思。最常见的模式是检查变量是否为undefined。许多人也会执行空值检查,例如:if (myVariable === undefined || myVariable === null)...
if (myVariable === undefined || myVariable === null)...
或者,用一种更简短的形式:if (myVariable || myVariable === null)...
if (myVariable || myVariable === null)...
zsohkypk2#
var message_1 = message.trim(); if (message_1.length > 0) { // to do }
twh00eeo3#
只是要小心我在这里看到的所有东西:
typeof object === 'object' && Object.keys(object).length === 0)确实在检查对象是否为空。但你知道吗,在脚本中的Date也被认为是对象?
typeof object === 'object' && Object.keys(object).length === 0)
Date
所以,如果你这样做了:
const shouldNotbeEmpty = new Date(Date.now()) isEmpty(shouldNotbeEmpty) // this will return true when it should not
解决这个问题的唯一方法是检查对象是否是Date示例:
typeof value === "object" && Object.keys(value).length === 0 && !value instanceof Date
所以大概是这样的:
const isObject = value => typeof value === "object" && Object.keys(value).length === 0 const isString = value => typeof value === "string" && value.trim().length === 0 const isEmpty = value => { const isDate = value instanceof Date return value === undefined || value === null || (isObject(value) && !isDate) || isString(value) } exports.isEmpty = isEmpty
34gzjxbg4#
我的解决方案是:
function isEmpty(object) { return ( (!object) || (object === undefined) || (object === null) || (object === '') || ((object?.length !== undefined) && (object.length === 0)) || (typeof object === 'object' && Object.keys(object).length === 0) ); }
用笑话进行测试:
describe('isEmpty should return `false` when the parameter have some truthy value.', () => { test('Empty objects should return true', () => { expect(utils.isEmpty([])).toBe(true); expect(utils.isEmpty({})).toBe(true); expect(utils.isEmpty('')).toBe(true); expect(utils.isEmpty(undefined)).toBe(true); expect(utils.isEmpty(null)).toBe(true); }); test('Truthy objects should return false', () => { expect(utils.isEmpty([1])).toBe(false); expect(utils.isEmpty({a: undefined})).toBe(false); expect(utils.isEmpty({a: 5})).toBe(false); expect(utils.isEmpty({a: 5, b: 6, c: undefined})).toBe(false); expect(utils.isEmpty('f00')).toBe(false); expect(utils.isEmpty('0')).toBe(false); }); })
qij5mzcb5#
function isEmpty(variable) { const type = typeof variable if (variable === null) return true if (type === 'undefined') return true if (type === 'boolean') return false if (type === 'string') return !variable if (type === 'number') return false if (Array.isArray(variable)) return !variable.length if (type === 'object') return !Object.keys(variable).length return !variable }
fykwrbwg6#
const isEmpty = val => val == null || !(Object.keys(val) || val).length;
wmvff8tz7#
这里有一个更简单(简短)的解决方案来检查空变量。此函数用于检查变量是否为空。提供的变量可能包含混合值(NULL、UNDEFINED、ARRAY、OBJECT、STRING、INTEGER、Function)。
function empty(mixed_var) { if (!mixed_var || mixed_var == '0') { return true; } if (typeof mixed_var == 'object') { for (var k in mixed_var) { return false; } return true; } return false; } // example 1: empty(null); // returns 1: true // example 2: empty(undefined); // returns 2: true // example 3: empty([]); // returns 3: true // example 4: empty({}); // returns 4: true // example 5: empty(0); // returns 5: true // example 6: empty('0'); // returns 6: true // example 7: empty(function(){}); // returns 7: false
6l7fqoea8#
如果数组为空,我会错过什么?无钥匙物体..。Falseness Const isEmpty=o=>Array.is数组(O)&&!o.Join(‘’).long||typeof o==‘Object’&&!Object.key(O).long||!(+Value);
hgc7kmma9#
如果您正在寻找与PHP的empty函数等效的函数,请查看以下内容:
empty
function empty(mixed_var) { // example 1: empty(null); // returns 1: true // example 2: empty(undefined); // returns 2: true // example 3: empty([]); // returns 3: true // example 4: empty({}); // returns 4: true // example 5: empty({'aFunc' : function () { alert('humpty'); } }); // returns 5: false var undef, key, i, len; var emptyValues = [undef, null, false, 0, '', '0']; for (i = 0, len = emptyValues.length; i < len; i++) { if (mixed_var === emptyValues[i]) { return true; } } if (typeof mixed_var === 'object') { for (key in mixed_var) { // TODO: should we check for own properties only? //if (mixed_var.hasOwnProperty(key)) { return false; //} } return true; } return false; }
http://phpjs.org/functions/empty:392
px9o7tmv10#
检查是否有未定义:
if (typeof response.photo == "undefined") { // do something }
这将完成vb的IsEmpty的等价物。如果myvar包含任何值,即使是NULL、空字符串或0,它也不是“空的”。
IsEmpty
要检查变量或属性是否存在,例如它已声明,但可能尚未定义,您可以使用in操作符。
in
if ("photo" in response) { // do something }
8xiog9wr11#
if (myVar == undefined)
将查看var是否已声明但未初始化。
irtuqstp12#
如果要测试空字符串:
if(myVar === ''){ // do stuff };
如果要检查已声明但未定义的变量:
if(myVar === null){ // do stuff };
如果您正在检查可能未定义的变量:
if(myVar === undefined){ // do stuff };
如果同时选中两个变量,即变量为空或未定义:
if(myVar == null){ // do stuff };
2eafrhcq13#
这样做怎么样?
JSON.stringify({}) === "{}"
qojgxg4l14#
只要将变量放在IF条件中,如果变量有任何值,它将返回TRUE或FALSE。
if (response.photo){ // if you are checking for string use this if(response.photo == "") condition alert("Has Value"); } else { alert("No Value"); };
rkttyhzu15#
对JSON键的空检查取决于用例。对于常见用例,我们可以测试以下内容:
1.不是null1.不是undefined1.非空字符串''1.非空对象{}``[](数组为对象)
null
undefined
''
{}``[]
职能:
function isEmpty(arg){ return ( arg == null || // Check for null or undefined arg.length === 0 || // Check for empty String (Bonus check for empty Array) (typeof arg === 'object' && Object.keys(arg).length === 0) // Check for empty Object or Array ); }
为以下项返回TRUE:
isEmpty(''); // Empty String isEmpty(null); // null isEmpty(); // undefined isEmpty({}); // Empty Object isEmpty([]); // Empty Array
22条答案
按热度按时间9nvpjoqh1#
这取决于你所说的“空”是什么意思。最常见的模式是检查变量是否为undefined。许多人也会执行空值检查,例如:
if (myVariable === undefined || myVariable === null)...
或者,用一种更简短的形式:
if (myVariable || myVariable === null)...
zsohkypk2#
twh00eeo3#
只是要小心我在这里看到的所有东西:
typeof object === 'object' && Object.keys(object).length === 0)
确实在检查对象是否为空。但你知道吗,在脚本中的Date
也被认为是对象?所以,如果你这样做了:
解决这个问题的唯一方法是检查对象是否是Date示例:
typeof value === "object" && Object.keys(value).length === 0 && !value instanceof Date
所以大概是这样的:
34gzjxbg4#
我的解决方案是:
用笑话进行测试:
qij5mzcb5#
fykwrbwg6#
const isEmpty = val => val == null || !(Object.keys(val) || val).length;
wmvff8tz7#
这里有一个更简单(简短)的解决方案来检查空变量。此函数用于检查变量是否为空。提供的变量可能包含混合值(NULL、UNDEFINED、ARRAY、OBJECT、STRING、INTEGER、Function)。
6l7fqoea8#
如果数组为空,我会错过什么?无钥匙物体..。Falseness Const isEmpty=o=>Array.is数组(O)&&!o.Join(‘’).long||typeof o==‘Object’&&!Object.key(O).long||!(+Value);
hgc7kmma9#
如果您正在寻找与PHP的
empty
函数等效的函数,请查看以下内容:http://phpjs.org/functions/empty:392
px9o7tmv10#
检查是否有未定义:
这将完成vb的
IsEmpty
的等价物。如果myvar包含任何值,即使是NULL、空字符串或0,它也不是“空的”。要检查变量或属性是否存在,例如它已声明,但可能尚未定义,您可以使用
in
操作符。8xiog9wr11#
将查看var是否已声明但未初始化。
irtuqstp12#
如果要测试空字符串:
如果要检查已声明但未定义的变量:
如果您正在检查可能未定义的变量:
如果同时选中两个变量,即变量为空或未定义:
2eafrhcq13#
这样做怎么样?
JSON.stringify({}) === "{}"
qojgxg4l14#
只要将变量放在IF条件中,如果变量有任何值,它将返回TRUE或FALSE。
rkttyhzu15#
对JSON键的空检查取决于用例。对于常见用例,我们可以测试以下内容:
1.不是
null
1.不是
undefined
1.非空字符串
''
1.非空对象
{}``[]
(数组为对象)职能:
为以下项返回TRUE: