javascript - 空文字 - typescript undefined 判定




変数が 'undefined'か 'null'かどうかを調べる方法は? (17)

jQuery attr()関数は、空の文字列または実際の値を返します(決してnullまたはundefinedありません)。 それがundefined返す唯一の時間は、セレクタが要素を返さなかったときです。

だから空文字列に対してテストしたいかもしれません。 代わりに、nullとundefinedの空文字列はfalse-yなので、これを行うことができます:

if (!EmpName) { //do something }

変数がundefinednullかをどうやって判断するのですか? 私のコードは次のとおりです:

var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
  //DO SOMETHING
};
<div id="esd-names">
  <div id="name"></div>
</div>

しかし、私がこれを行うと、JavaScriptインタプリタは実行を停止します。


jQueryのcheck要素not null

var dvElement = $('#dvElement');

if (dvElement.length  > 0) {
    //do something
}
else{
    //else do something else
}

抽象均等演算子の性質を使って、これを行うことができます:

if (variable == null){
    // your code here.
}

null == undefinedがtrueであるため、上記のコードはnullundefined両方をキャッチしnull


"=="と判断すると、予期せぬ型強制が発生する可能性があり、コーヒースクリプトで読み込めません。条件判定に "=="や "!="を使用しないでください

if(x)が良いでしょうしかし、 0と ""が可愛いので、 "!= null"と等しいメソッドは真ではありません。

https://www.w3schools.com/js/js_best_practices.asp


jQueryを使用しているので、単一の関数を使用して変数が未定義であるか、その値がnullであるかどうかを判断できます。

var s; // undefined
jQuery.isEmptyObject(s); // will return true;

s = null; // defined as null
jQuery.isEmptyObject(s); // will return true;

// usage
if(jQuery.isEmptyObject(s)){
    alert('Either variable: s is undefined or its value is null');
}else{
     alert('variable: s has value ' + s);
}

s = 'something'; // defined with some value
jQuery.isEmptyObject(s); // will return false;

この方法で確認できます。

if(['object','undefined'].indexOf(typeof(variable)) != -1){
    console.log("variable is null or undefined.");
}

チェックしたい変数がグローバル変数の場合、do

if (window.yourVarName) {
    // Your code here
}

このチェック方法は、 yourVarName変数が存在しない場合でもエラーをスローしません。

例:私のブラウザが履歴APIをサポートしているかどうかを知りたい

if (window.history) {
    history.back();
}

この仕組み:

windowはすべてのグローバル変数をそのプロパティとして保持するオブジェクトであり、JavaScriptでは存在しないオブジェクトプロパティにアクセスしようとすると合法です。 historyが存在しない場合、 window.historyundefined返します。 undefinedは偽であるため、 if(undefined){}ブロックのコードは実行されません。


上記の答えを組み合わせると、最も完全な答えは次のようになります。

if( typeof variable === 'undefined' || variable === null ){
    // Do stuff
}

宣言されていないか宣言されていて、明示的にnullまたは未定義に設定されている変数に対しては、これはうまく動作します。 ブール式は、実際のnull以外の値を持つ宣言された変数の場合はfalseに評価されます。


元の投稿がJQueryを使用していたことがわかります。 だから私は過去にJQuery経由で使ったことを追加しています。 通常、私はそのようなチェックを実行しているときに、必ずしもその目的のためにnullまたはundefinedである値をチェックするわけではありません。 より多くのような "そこに値があるので、私はそれに対して行動を起こすことができる"。 だから私は以下を使用します。 私はすべてのタイプを試していないが、私はそれがnullとundefinedの両方で動作することを知っている。 また、オブジェクトと配列(それらの空のバージョンはtrueを返します)。 もちろん、変数が存在しない場合は例外が発生しますが、正直なところ、それを回避しようとします。 だから私はAerovistaeに同意します。 私はこれについて私のコードで知りたいだけで、それをスキップしたくありません。

if ($.trim(value) != '') {
   //Do Something
}

単にtypeofを使用して、値が未定義かヌルかをチェックできます。

if(typeof value == 'undefined'){

最良の方法:

if(typeof variable==='undefined' || variable===null) {

/* do your stuff */
}

状況によっては、 undefinedの値を変更することが可能です。 これらは一般的にはまれですが、 undefined値の実際の使用を避けるのが最善の場合もあります。

その結果、書き込みが速くなるので、空の配列の最初の値を調べるundefinedショートカットを使用することに慣れてきました。 この値はundefinedのプリミティブ値であることが保証されており、 [][0]でアクセスできます。

このチェックは、 undefinednull両方を探すために機能しnull

次に例を示します。

(function(undefined){
    var foo = { baz: null };
    console.log(foo.bar === undefined); //false
    console.log(foo.bar == [][0]); //true
    console.log(foo.baz == [][0]); //true
}(50))


私はちょうどオブジェクトがnullであるかどうかをチェックするこの問題を持っていた。
私は単にこれを使う:

if (object) { Somecode}

すなわち、

if (document.getElementById("enterJob")) 
  document.getElementById("enterJob").className += ' current';

私はクロームコンソールでこのテストを実行し、(void 0)を使用すると未定義をチェックできます

var c;
undefined
if(c === void 0)alert();
// output =  undefined
var c = 1;
// output =  undefined
if(c === void 0)alert();
// output =   undefined
// check c value  c
// output =  1
if(c === void 0)alert();
// output =  undefined
c = undefined;
// output =  undefined
if(c === void 0)alert();
// output =   undefined

if (typeof EmpName != 'undefined' && EmpName) {

valueがそうでない場合はtrueに評価されます:

  • ヌル

  • 未定義

  • NaN

  • 空の文字列( "")

  • 0


if (variable == null) {
    // Do stuff, will only match null or undefined, this won't match false
}

var x;
if (x === undefined) {
    alert ("only declared, but not defined.")
};
if (typeof y === "undefined") {
    alert ("not even declared.")
};

2番目のものだけを使うことができます:定義と宣言の両方をチェックするので





undefined