function myFunction() {
var data; //The Values can be like as null, blank, undefined, zero you can test
if(!(!(data)))
{
alert("data "+data);
}
else
{
alert("data is "+data);
}
}
26
如果您使用 TypeScript 并且不想占用 "values those are false" ,那么这是您的解决方案:
第一名: import { isNullOrUndefined } from 'util';
然后: isNullOrUndefined(this.yourVariableName)
请注意:如上所述below现已弃用,请改用 value === undefined || value === null . ref .
4
您可能会发现以下功能有用:
function typeOf(obj) {
return {}.toString.call(obj).split(' ')[1].slice(0, -1).toLowerCase();
}
/**
* 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)
4
对于每个来这里有类似问题的人来说,下面的工作很棒,而且我在过去的几年里在我的图书馆里有这个:
(function(g3, $, window, document, undefined){
g3.utils = g3.utils || {};
/********************************Function type()********************************
* Returns a lowercase string representation of an object's constructor.
* @module {g3.utils}
* @function {g3.utils.type}
* @public
* @param {Type} 'obj' is any type native, host or custom.
* @return {String} Returns a lowercase string representing the object's
* constructor which is different from word 'object' if they are not custom.
* @reference http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/
* http://stackoverflow.com/questions/3215046/differentiating-between-arrays-and-hashes-in-javascript
* http://javascript.info/tutorial/type-detection
*******************************************************************************/
g3.utils.type = function (obj){
if(obj === null)
return 'null';
else if(typeof obj === 'undefined')
return 'undefined';
return Object.prototype.toString.call(obj).match(/^\[object\s(.*)\]$/)[1].toLowerCase();
};
}(window.g3 = window.g3 || {}, jQuery, window, document));
164
您可以直接使用相等运算符
<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>
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")) {
-1
! 检查空字符串(“”),null,undefined,false以及数字0和NaN . 比如,如果字符串为空 var name = "" 则 console.log(!name) 返回 true .
function isEmpty(val){
return !val;
}
如果 val 是 empty, null, undefined, false, the number 0 or NaN ,则此函数将返回true .
2
try{
let vari = obj.propTest; // obj may be don't have propTest property
...
} catch(NullException){
// do something here
}
30 回答
虽然是老人,但忘记的是他们应该包装他们的代码块然后捕获错误然后测试...
所以你真的不必事先检查潜在的问题,你只需 grab 它然后按照你想要的方式处理它 .
如果未声明变量,则无法使用函数测试未定义,因为您将收到错误 .
如果没有声明foo,两者都会产生错误 .
如果要测试是否已声明变量,则可以使用
如果你想测试foo是否已被声明并且它有一个你可以使用的值
您可以使用:
If子句验证字符串或值是否为空 . 像这样:
评分最高的第一个答案是错误的 . 如果value未定义,它将在现代浏览器中引发异常 . 你必须使用:
要么
我觉得用的是?操作员稍微清洁一点 .
我知道这是一个老问题,但这是最安全的检查,我没有看到它在这里发布完全相同:
它将涵盖从未定义 value 的情况,以及以下任何一种情况:
null
undefined(undefined的值与从未定义的参数不同)
0
“”(空字符串)
假
NaN
附: typeof value != 'undefined' 无需严格平等
你有点过头了 . 要检查变量是否未赋值,您只需要检查undefined和null .
这假设
0
,""
,并且对象(甚至空对象和数组)有效"values" .检查默认值
检查结果:
我使用@Vix函数()来检查哪种类型的对象 .
使用instansof«
检查值是未定义还是null的详细方法是:
您也可以使用
==
运算符,但这需要一个know all the rules:这是一个非常简单的问题 .
此函数检查
empty object {}
,empty array []
,null
,undefined
和blank string ""
是一个非常好的和干净的方式来处理它在很多地方,也可以用来分配变量
您可以检查变量是否具有
truthy
值 . 这意味着如果
value
是 not ,将评估为true
:null
undefined
NaN
空字符串(“”)
0
假
以上列表表示ECMA- / Javascript中所有可能的
falsy
值 . 在ToBoolean
部分的specification中找到它 .此外,如果您没有 know 是否存在变量(即,如果已声明),则应使用
typeof
运算符进行检查 . 例如如果您可以确定至少声明了变量,则应直接检查它是否具有如上所示的
truthy
值 .进一步阅读:http://typeofnan.blogspot.com/2011/01/typeof-is-fast.html
对于我的情况,我尝试使用if null,',!变量,但它没有用 .
请参阅下面的代码以获取html字段中的文本
如果状态变量中没有值(无文本),我试图将值'novalue'设置为状态变量 .
以下代码有效 .
当没有找到satus变量的文本时,上面的代码为状态变量分配了“novalue”
这永远不会抛出错误 . 如果myObject,child或myValue为null,则myNewValue将为null . 不会抛出任何错误
但是这个解决方案是过度设计的,如果你不想稍后修改函数模型需求,那么在代码中直接使用它是更干净的:
在ES6中使用trim来处理空白字符串:
这将返回true
和零参数函数,因为函数
length
是它所采用的声明参数的数量 .要禁止后一类,您可能只想检查空字符串
这是我的 - 如果value为null,undefined等等或空白(即仅包含空格),则返回true:
您可以使用波纹管代码检查所有四(4)条件进行验证,如非空,非空白,未定义,而不是零只在javascript和jquery中使用此代码(!(!(变量))) .
如果您使用 TypeScript 并且不想占用 "values those are false" ,那么这是您的解决方案:
第一名:
import { isNullOrUndefined } from 'util';
然后:
isNullOrUndefined(this.yourVariableName)
请注意:如上所述below现已弃用,请改用
value === undefined || value === null
. ref .您可能会发现以下功能有用:
或者在ES7中(如果进一步改进则发表评论)
结果:
“请注意,绑定运算符(::)不是ES2016(ES7)的一部分,也不是ECMAScript标准的任何后续版本 . 它目前是引入该语言的第0阶段(草编)提议 . ” - 西蒙谢尔贝格 . 作者希望加入他对这一美丽提案的支持,以获得皇室提升 .
它可能是有用的 .
这种情况检查
是你所需要的全部 .
如果你更喜欢普通的javascript试试这个:
否则,如果您已经使用下划线或lodash,请尝试:
对于每个来这里有类似问题的人来说,下面的工作很棒,而且我在过去的几年里在我的图书馆里有这个:
您可以直接使用相等运算符
demo @ How to determine if variable is undefined or null using JavaScript
这将检查是否未定义不确定嵌套的变量
以上检查是否存在Google翻译功能TranslateElement . 这相当于:
! 检查空字符串(“”),null,undefined,false以及数字0和NaN . 比如,如果字符串为空
var name = ""
则console.log(!name)
返回true
.如果 val 是 empty, null, undefined, false, the number 0 or NaN ,则此函数将返回true .
我认为使用try catch将避免任何null检查错误,也可以在Angular或JavaScript中捕获null异常和进程 .