JavaScriptÔÇÖte bo┼č, tan─▒ms─▒z veya bo┼č de─či┼čkenleri kontrol etmek i├žin standart bir i┼člev var m─▒?


Al─▒nan cevaba git


De─či┼čken o kadar zor olmad─▒─č─▒n─▒ bir de─čer ve garanti kontrolleri vard─▒r o evrensel JavaScript i┼člevi var m─▒ undefined yoksa null ? Bu kodu ald─▒m, ancak t├╝m vakalar─▒ kapsad─▒─č─▒ndan emin de─čilim:

 function isEmpty(val){
    return (val === undefined || val == null || val.length <= 0) ? true : false;
}
 

2047





2011-04-01




Cevap say─▒s─▒n─▒ say: 30






Sadece de─či┼čkenin bir truthy de─čeri olup olmad─▒─č─▒n─▒ kontrol edebilirsiniz . Bunun anlam─▒

 if( value ) {
}
 

i├žin de─čerlendirecek true e─čer value oldu─čunu de─čil :

  • bo┼č
  • Tan─▒ms─▒z
  • NaN
  • bo┼č dize ("")
  • 0
  • yanl─▒┼č

Yukar─▒daki liste falsy ECMA / Javascript'teki t├╝m olas─▒ de─čerleri temsil eder . Bunu bulun ┼čartnamede de ToBoolean b├Âl├╝m.

Ayr─▒ca, bir de─či┼čkenin var olup olmad─▒─č─▒n─▒ bilmiyorsan─▒z (yani, bildirilmi┼čse ) typeof operat├Âr├╝ kontrol etmelisiniz . ├ľrne─čin

 if( typeof foo !== 'undefined' ) {
    // foo could get resolved and it's defined
}
 

En az─▒ndan bir de─či┼čkenin bildirildi─činden emin olabilirseniz , truthy yukar─▒da g├Âsterildi─či gibi bir de─čer olup olmad─▒─č─▒n─▒ do─črudan kontrol etmelisiniz .

Daha fazla okuma: http://typeofnan.blogspot.com/2011/01/typeof-is-fast.html


4032







De─čerin tan─▒ms─▒z veya bo┼č oldu─čunu kontrol etmek i├žin ayr─▒nt─▒l─▒ y├Ântem:

 return value === undefined || value === null;
 

== Operat├Âr├╝ de kullanabilirsiniz, ancak bu t├╝m kurallar─▒ bilmesini bekler :

 return value == null; // also returns true if value is undefined
 

200







 function isEmpty(value){
  return (value == null || value.length === 0);
}
 

Bunun i├žin do─čru d├Ânecek

 undefined  // Because undefined == null

null

[]

""
 

ve s─▒f─▒r arg├╝man fonksiyonu, ├ž├╝nk├╝ bir fonksiyonun yapt─▒─č─▒ length , belirtilen parametrelerin say─▒s─▒d─▒r.

─░kinci kategoriye izin vermemek i├žin sadece bo┼č dizeleri kontrol etmek isteyebilirsiniz.

 function isEmpty(value){
  return (value == null || value === '');
}
 

72







Bu en g├╝venli ├žek ve ben de tam olarak b├Âyle yay─▒nland─▒─č─▒n─▒ g├Ârmedim:

 if (typeof value != 'undefined' && value) {
    //deal with value'
};
 

De─čerin hi├žbir zaman tan─▒mlanmad─▒─č─▒ durumlar─▒ ve bunlardan herhangi birini kapsayacakt─▒r :

  • bo┼č
  • undefined (undefined de─čeri, asla tan─▒mlanmayan bir parametreyle ayn─▒ de─čildir)
  • 0
  • "" (bo┼č dize)
  • yanl─▒┼č
  • NaN

PS typeof de─čerinde kat─▒ bir e┼čitli─če gerek yok ! = 'Undefined'


34


2013-11-10





A┼ča─č─▒daki i┼člevi yararl─▒ bulabilirsiniz:

 function typeOf(obj) {
  return {}.toString.call(obj).split(' ')[1].slice(0, -1).toLowerCase();
}
 

Veya ES7ÔÇÖde (daha fazla geli┼čme olursa yorum yap─▒n)

 function typeOf(obj) {
  const { toString } = Object.prototype;
  const stringified = obj::toString();
  const type = stringified.split(' ')[1].slice(0, -1);

  return type.toLowerCase();
}
 

Sonu├žlar:

 typeOf(); //undefined
typeOf(null); //null
typeOf(NaN); //number
typeOf(5); //number
typeOf({}); //object
typeOf([]); //array
typeOf(''); //string
typeOf(function () {}); //function
typeOf(/a/) //regexp
typeOf(new Date()) //date
typeOf(new WeakMap()) //weakmap
typeOf(new Map()) //map
 

"Ba─člama i┼člecinin (: :) ES2016 (ES7) 'nin bir par├žas─▒ olmad─▒─č─▒n─▒ ya da ECMAScript standard─▒n─▒n daha sonraki bir s├╝r├╝m├╝n├╝n olmad─▒─č─▒n─▒ unutmay─▒n. ┼×u anda, dil i├žin tan─▒t─▒lan bir a┼čama 0 (strawman) ├Ânerisi." - Simon Kjellberg. yazar kraliyet y├╝kseli┼čini almak i├žin bu g├╝zel teklife destek vermek istiyor.


27


2015-02-12





En iyi oyu alan ilk cevap yanl─▒┼čt─▒r. De─čer tan─▒ms─▒zsa, modern taray─▒c─▒larda bir istisna atar. Kullanman─▒z gerekir:

 if (typeof(value) !== "undefined" && value)
 

veya

 if (typeof value  !== "undefined" && value)
 

25







! kontrol bo┼č dizeleri ( ""), bo┼č, tan─▒ms─▒z yanl─▒┼č ve 0 say─▒s─▒n─▒ ve NaN. Bir dize bo┼čsa, var name = "" sonra console.log(!name) d├Âner true .

 function isEmpty(val){
  return !val;
}
 

e─čer bu fonksiyon ger├žek d├Ânecektir val ise bo┼č, null, tan─▒ms─▒z, yalanc─▒, say─▒ 0 veya NaN .

VEYA

Sorun alan─▒n─▒za g├Âre sadece !val veya gibi kullanabilirsiniz !!val .


16


2015-01-23





Biraz abart─▒yorsun. Bir de─či┼čkenin de─čerinin verilip verilmedi─čini kontrol etmek i├žin sadece tan─▒ms─▒z ve bo┼č de─čere kar┼č─▒ kontrol etmeniz gerekir.

 function isEmpty(value){
    return (typeof value === "undefined" || value === null);
}
 

Bu varsayarak 0 , "" ve nesnelerin (hatta bo┼č bir nesne ve dizi) ge├žerli "de─čerleri" dir.


12







Bu durum kontrol├╝

 if (!!foo) {
    //foo is defined
}
 

t├╝m ihtiyac─▒n olan.


12







D├╝z javascript tercih ederseniz, ┼čunu deneyin:

   /**
   * 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;
  }
 

Aksi takdirde, alt ├žizgi veya lodash kullan─▒yorsan─▒z, ┼čunu deneyin:

 _.isEmpty(value)
 

11


2015-08-21





├çok sevdi─čim bir ├ž├Âz├╝m:

Bo┼č bir de─či┼čkenin null ya undefined da uzunlu─ču varsa s─▒f─▒r oldu─čunu ya da bir nesneyse, hi├žbir anahtar─▒ olmad─▒─č─▒n─▒ tan─▒mlayal─▒m :

 function isEmpty (value) {
  return (
    // null or undefined
    (value == null) ||

    // has length and it's zero
    (value.hasOwnProperty('length') && value.length === 0) ||

    // is an Object and has no keys
    (value.constructor === Object && Object.keys(value).length === 0)
  )
}
 

─░ade:

  • Ger├žek: undefined , null , "" , [] , {}
  • Yanl─▒┼č: true , false , 1 , 0 , -1 , "foo" , [1, 2, 3] , { foo: 1 }

10







─░┼čte benimki - e─čer de─čer null, undefined, etc veya blank ise do─črudur (yani sadece bo┼čluklar i├žerir):

 function stringIsEmpty(value) {

    return value ? value.trim().length == 0 : true;

}
 

9







De─či┼čken bildirilmediyse, bir i┼člev kullanarak tan─▒ms─▒z i├žin test yapamazs─▒n─▒z, ├ž├╝nk├╝ bir hata al─▒rs─▒n─▒z.

 if (foo) {}
function (bar) {}(foo)
 

Foo bildirilmezse her ikisi de bir hata ├╝retecektir.

Bir de─či┼čken bildirilmi┼č olup olmad─▒─č─▒n─▒ test etmek istiyorsan─▒z kullanabilirsiniz.

 typeof foo != "undefined"
 

foo bildirilip bildirilmedi─čini ve kullanabilece─činiz bir de─čeri olup olmad─▒─č─▒n─▒ test etmek istiyorsan─▒z

 if (typeof foo != "undefined" && foo) {
    //code here
}
 

5







Varsay─▒lan De─čeri kontrol etmek i├žin

 function typeOfVar (obj) {
      return {}.toString.call(obj).split(' ')[1].slice(0, -1).toLowerCase();
}
function isVariableHaveDefaltVal(variable) {
    if ( typeof(variable) === 'string' ) {  // number, boolean, string, object 
        console.log(' Any data Between single/double Quotes is treated as String ');        
        return (variable.trim().length === 0) ? true : false;
    }else if ( typeof(variable) === 'boolean' ) {
      console.log('boolean value with default value \'false\'');
        return (variable === false) ? true : false;
    }else if ( typeof(variable) === 'undefined' ) {
        console.log('EX: var a; variable is created, but has the default value of undefined.'); 
        return true;
    }else if ( typeof(variable) === 'number' ) { 
        console.log('number : '+variable);
        return (variable === 0 ) ? true : false;
    }else if ( typeof(variable) === 'object' ) {
   //   -----Object-----
        if (typeOfVar(variable) === 'array' && variable.length === 0) {
            console.log('\t Object Array with length = ' + [].length); // Object.keys(variable)
            return true;
        }else if (typeOfVar(variable) === 'string' && variable.length === 0 ) {
            console.log('\t Object String with length = ' + variable.length);
            return true;
        }else if (typeOfVar(variable) === 'boolean' ) {
            console.log('\t Object Boolean = ' + variable);
            return (variable === false) ? true : false;
        }else if (typeOfVar(variable) === 'number' ) {
            console.log('\t Object Number = ' + variable);
            return (variable === 0 ) ? true : false;
        }else if (typeOfVar(variable) === 'regexp' && variable.source.trim().length === 0 ) {
       console.log('\t Object Regular Expression : ');
        return true;
        }else if (variable === null) {
       console.log('\t Object null value');
        return true;
        }
    }
    return false;
}
var str = "A Basket For Every Occasion";
str = str.replace(/\s/g, "-");
//The "g" flag in the regex will cause all spaces to get replaced.
 

Sonucu kontrol et:

 isVariableHaveDefaltVal(' '); // string          
isVariableHaveDefaltVal(false); // boolean       
var a;           
isVariableHaveDefaltVal(a);               
isVariableHaveDefaltVal(0); // number             
isVariableHaveDefaltVal(parseInt('')); // NAN isNAN(' '); - true         
isVariableHaveDefaltVal(null);              
isVariableHaveDefaltVal([]);               
isVariableHaveDefaltVal(/ /);              
isVariableHaveDefaltVal(new Object(''));               
isVariableHaveDefaltVal(new Object(false));            
isVariableHaveDefaltVal(new Object(0)); 
typeOfVar( function() {} );
 

Hangi t├╝r nesneyi kontrol etmek i├žin @ Vix function () kulland─▒m.

instansof kullanarak ┬ź

 var prototypes_or_Literals = function (obj) {
    switch (typeof(obj)) {
        // object prototypes
        case 'object':
            if (obj instanceof Array)
                return '[object Array]';
            else if (obj instanceof Date)
                return '[object Date]';
            else if (obj instanceof RegExp)
                return '[object regexp]';
            else if (obj instanceof String)
                return '[object String]';
            else if (obj instanceof Number)
                return '[object Number]';

            else
                return 'object';
        // object literals
        default:
            return typeof(obj);
    }   
};
output test ┬ź
prototypes_or_Literals( '' ) // "string"
prototypes_or_Literals( new String('') ) // "[object String]"
Object.prototype.toString.call("foo bar") //"[object String]"        
 

5


2015-10-05





 return val || 'Handle empty variable'
 

ger├žekten ├žok g├╝zel ve temiz bir yoldur, bir├žok yerde kullan─▒m i├žin de─či┼čkenleri atamak i├žin de kullan─▒labilir

 const res = val || 'default value'
 

5







 function isEmpty(obj) {
    if (typeof obj == 'number') return false;
    else if (typeof obj == 'string') return obj.length == 0;
    else if (Array.isArray(obj)) return obj.length == 0;
    else if (typeof obj == 'object') return obj == null || Object.keys(obj).length == 0;
    else if (typeof obj == 'boolean') return false;
    else return !obj;
}
 

Bo┼čluk dizelerini i┼člemek i├žin k─▒rpmal─▒ ES6'da:

 const isEmpty = value => {
    if (typeof value === 'number') return false
    else if (typeof value === 'string') return value.trim().length === 0
    else if (Array.isArray(value)) return value.length === 0
    else if (typeof value === 'object') return value == null || Object.keys(value).length === 0
    else if (typeof value === 'boolean') return false
    else return !value
}
 

4







Faydal─▒ olabilir.

Dizideki t├╝m de─čerler ne olmak istedi─činizi (bo┼č, tan─▒ms─▒z veya ba┼čka ┼čeyler) g├Âsterir ve i├žinde ne istedi─činizi arars─▒n─▒z.

 var variablesWhatILookFor = [null, undefined, ''];
variablesWhatILookFor.indexOf(document.DocumentNumberLabel) > -1
 

4







Bo┼čluk, bo┼č de─čil, tan─▒mlanmam─▒┼č ve s─▒f─▒r de─čil gibi do─črulama i├žin d├Ârt (4) ko┼čulun t├╝m├╝n├╝ kontrol etmek i├žin feryat kodunu kullanabilirsiniz.

 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);
    }
}
 

3







Kulland─▒─č─▒n─▒z de─čilseniz TypeScript ve hesaba istemiyoruz "de─čerler olanlard─▒r false " o zaman bu sizin i├žin bir ├ž├Âz├╝md├╝r:

─░lk: import { isNullOrUndefined } from 'util';

Sonra: isNullOrUndefined(this.yourVariableName)

L├╝tfen Dikkat: A┼ča─č─▒da belirtildi─či gibi bu ┼čimdi kullan─▒mdan kald─▒r─▒lm─▒┼čt─▒r, value === undefined || value === null bunun yerine kullan─▒n. ref .


3







 function isEmpty(val){
    return !val;
}
 

ancak bu ├ž├Âz├╝m a┼č─▒r─▒ tasarlanm─▒┼čt─▒r, daha sonra i┼čletme modeli ihtiya├žlar─▒ i├žin i┼člevi daha sonra de─či┼čtirmek istemezseniz, kodu do─črudan kullanmak i├žin daha temizdir:

 if(!val)...
 

2







 var myNewValue = myObject && myObject.child && myObject.child.myValue;
 

Bu asla hata yapmaz. E─čer myObject , ├žocuk veya MyValue null sonra myNewValue bo┼č olacakt─▒r. Hata at─▒lmayacak


2







Buraya benzer bir soru sormak i├žin gelen herkes i├žin a┼ča─č─▒dakiler harika ├žal─▒┼č─▒yor ve son y─▒llarda k├╝t├╝phanemde var:

 (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));
 

2







Vacuousness

T├╝m d├╝nyadaki herhangi bir de─čerin bo┼č olup olmad─▒─č─▒n─▒ hesaplayan bir fonksiyon tan─▒mlamay─▒ veya kullanmay─▒ denemeyi ├Ânermiyorum. Ger├žekten "bo┼č" olmak ne anlama geliyor? E─čer varsa let human = { name: 'bob', stomach: 'empty' } , isEmpty(human) geri d├Ânmeli true mi? E─čer varsa let reg = new RegExp(''); , isEmpty(reg) geri d├Ânmeli true mi? Peki ya isEmpty([ null, null, null, null ]) - bu liste sadece bo┼čluk i├žeriyor, bu y├╝zden listenin kendisi bo┼č mu? Burada javascriptte "bo┼člukluluk" (kas─▒tl─▒ olarak belirsiz bir kelime, ├Ânceden var olan ili┼čkilerden ka├ž─▒nmak i├žin) hakk─▒nda baz─▒ notlar koymak istiyorum - ve javascript de─čerlerinde "bo┼čluk" un asla genel olarak ele al─▒nmamas─▒ gerekti─čini savunmak istiyorum.


Truthiness / Falsiness

De─čerlerin ÔÇťbo┼člu─čunuÔÇŁ nas─▒l belirleyece─čimize karar vermek i├žin, javascript'in yerle┼čik, de─čerlerin ÔÇťtruthyÔÇŁ veya ÔÇťfalsyÔÇŁ olup olmad─▒─č─▒na dair kendi i├žlerinde yer almalar─▒ gerekir. Do─čal olarak null ve undefined her ikisi de "sahte". Daha az do─čal olarak, say─▒ 0 (ve hari├ž ba┼čka hi├žbir say─▒ de─čil NaN ) ayn─▒ zamanda "sahte" dir. Do─čal olarak en az: '' sahtedir, ancak [] ve {} (ve new Set() , ve new Map() ) s─▒radand─▒r - hepsi e┼čit derecede bo┼č g├Âr├╝nmesine ra─čmen!


Null vs Tan─▒ms─▒z

Ayr─▒ca, null vs ile ilgili baz─▒ tart─▒┼čmalar var undefined - programlar─▒m─▒zdaki bo┼čluklar─▒ ifade etmek i├žin ikisine de ger├žekten ihtiyac─▒m─▒z var m─▒? ┼×ahsen, u, n, d, e, f, i, n, e, d harflerinin kodumda bu s─▒rada g├Âr├╝nmesini istemem. Ben her zaman null "bo┼člu─ču" belirtmek i├žin kullan─▒r─▒m . Yine de, javascript'in do─čas─▒ gere─či nas─▒l null ve undefined farkl─▒ oldu─ču anlam─▒n─▒ sa─člamam─▒z gerekir :

  • Var olmayan bir ├Âzelli─če eri┼čmeye ├žal─▒┼čmak undefined
  • Bir fonksiyonu ├ža─č─▒r─▒rken parametre atlamak, o parametrenin al─▒nmas─▒na neden olur undefined :

 let f = a => a;
console.log(f('hi'));
console.log(f()); 

  • Verildi─činde varsay─▒lan de─čerlerle Parametreler sadece varsay─▒lan almak undefined de─čil, null :

 let f = (v='hello') => v;
console.log(f(null));
console.log(f(undefined)); 


Jenerik Olmayan Bo┼čluk

Bo┼člu─čun hi├žbir zaman genel bir ┼čekilde ele al─▒nmamas─▒ gerekti─čine inan─▒yorum. Bunun yerine, bo┼č olup olmad─▒─č─▒na karar vermeden ├Ânce verilerimiz hakk─▒nda daha fazla bilgi almak i├žin her zaman titizlik g├Âstermeliyiz - Ben bunu esas olarak ne t├╝r verilerle u─čra┼čt─▒─č─▒m─▒ kontrol ederek yap─▒yorum:

 let isType = (value, Cls) => {
  try {
    return Object.getPrototypeOf(value).constructor === Cls;
  } catch(err) {
    return false;
  }
}; 

Bu fonksiyonun polimorfizmi g├Ârmezden geldi─čine dikkat edin - bunun bir alt s─▒n─▒f─▒n─▒n ├Ârne─či de─čil value do─črudan bir ├Ârne─či olmas─▒n─▒ bekler . ─░ki ana sebepten ka├ž─▒n─▒yorum : Cls Cls instanceof

  • ([] instanceof Object) === true ("Dizi bir Nesnedir")
  • ('' instanceof String) === false ("Bir Dize bir Dize de─čil")

Not Object.getPrototypeOf gibi bir durumu ├Ânlemek i├žin kullan─▒lan fonksiyonu hala i├žin do─čru bir ┼čekilde d├Âner (yanl─▒┼č) ve (do─čru). let v = { constructor: String }; isType isType(v, String) isType(v, Object)

Genel olarak, bu isType i┼člevi a┼ča─č─▒daki ipu├žlar─▒yla birlikte kullanman─▒z─▒ ├Âneririz :

  • Bilinmeyen t├╝rdeki kod i┼čleme de─čerlerinin miktar─▒n─▒ en aza indirin. ├ľrne─čin, let v = JSON.parse(someRawValue); bizim v de─či┼čkenimiz art─▒k bilinmeyen tipte. M├╝mk├╝n oldu─čunca erken, olas─▒l─▒klar─▒m─▒z─▒ s─▒n─▒rlamal─▒y─▒z. Bunu yapman─▒n en iyi yolu belirli bir t├╝r gerektirerek olabilir: ├Ârne─čin if (!isType(v, Array)) throw new Error('Expected Array'); - bu, genel do─čas─▒n─▒ ortadan kald─▒rmak ve v her zaman bir zaman─▒n olmas─▒n─▒ sa─člamak i├žin ger├žekten h─▒zl─▒ ve etkileyici bir yoldur Array . Bazen, v birden fazla t├╝rde olmas─▒na izin vermemiz gerekir . Bu gibi durumlarda, v art─▒k jenerik olmayan kod bloklar─▒ m├╝mk├╝n oldu─čunca erken olu┼čturmal─▒y─▒z:

 if (isType(v, String)) {
  /* v isn't generic in this block - It's a String! */
} else if (isType(v, Number)) {
  /* v isn't generic in this block - It's a Number! */
} else if (isType(v, Array)) {
  /* v isn't generic in this block - it's an Array! */
} else {
  throw new Error('Expected String, Number, or Array');
} 

  • Do─črulamak i├žin her zaman "beyaz listeler" kullan─▒n. ├ľrne─čin bir String, Number veya Array de─čerine ihtiya├ž duyuyorsan─▒z, bu 3 "beyaz" olas─▒l─▒k olup olmad─▒─č─▒n─▒ kontrol edin ve 3'ten hi├žbiri kar┼č─▒lanmazsa bir Hata at─▒n. Biz yazar─▒z ki: Biz ├žok kullan─▒┼čl─▒ de─čildir "siyah" olas─▒l─▒klar i├žin bu denetimi g├Ârmek gerekir if (v === null) throw new Error('Null value rejected'); bu sa─člamaktan b├╝y├╝k - null de─čerler ├╝zerinden yapmak yok, ama bir de─čer e─čer does ├╝zerinden yapmak, biz hala pek biliyoruz bunun hakk─▒nda herhangi bir ┼čey. v Bu bo┼č kontrol├╝ ge├žen bir de─čer hala ├çOK jenerik - bu ba┼čka bir ┼čey de─čil null ! Kara listeler jenerikli─či zorlukla kovar.
  • Bir de─čer olmad─▒─č─▒ s├╝rece null , asla "bo┼č bir de─čer" olarak d├╝┼č├╝nmeyin. Bunun yerine, "bo┼č bir X" d├╝┼č├╝n├╝n. Temel olarak, asla b├Âyle bir ┼čey yapmay─▒ d├╝┼č├╝nmeyin if (isEmpty(val)) { /* ... */ } - bu isEmpty i┼člevin nas─▒l uyguland─▒─č─▒na bak─▒lmaks─▒z─▒n (bilmek istemiyorum ...), anlaml─▒ de─čil! Ve bu ├žok genel! Bo┼čluk sadece t├╝r├╝n├╝n bilgisi ile hesaplanmal─▒d─▒r val . Bo┼čluk kontrolleri ┼č├Âyle g├Âr├╝nmelidir:

    • "Karaktersiz bir dize": if (isType(val, String) && val.length === 0) ...
    • "0 sahne ile bir nesne": if (isType(val, Object) && Object.entries(val).length === 0) ...
    • "S─▒f─▒rdan k├╝├ž├╝k veya e┼čit bir say─▒": if (isType(val, Number) && val <= 0) ...
    • "├ľ─česi olmayan bir Dizi": if (isType(val, Array) && val.length === 0) ...

    • Bunun tek istisnas─▒, null belirli i┼člevselli─či belirtmek i├žin kullan─▒ld─▒─č─▒ndad─▒r. Bu durumda "Bo┼č bir de─čer" demek anlaml─▒: if (val === null) ...


2







Bu, belirsiz yerle┼čtirme de─či┼čkeninin tan─▒ms─▒z olup olmad─▒─č─▒n─▒ kontrol eder

 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")) {
 

Yukar─▒dakiler, TranslateElementÔÇÖin Google ├ževiri i┼člevinin olup olmad─▒─č─▒n─▒ kontrol eder. Bu e┼čde─čerdir:

 if (!(typeof google === "undefined" 
 || typeof google.translate === "undefined" 
 || typeof google.translate.TranslateElement === "undefined")) {
 

1







Ben kullanarak d├╝┼č├╝n├╝yorum? operat├Âr biraz daha temiz.

 var ? function_if_exists() : function_if_doesnt_exist();
 

0







Bir ihtiyar olmas─▒na ra─čmen, unuttuklar─▒ ┼čey kod bloklar─▒n─▒ sarmalar─▒ ve sonra hatay─▒ yakalamalar─▒ ve sonra test etmeleri ...

 function checkup( t ){
  try{
    for(p in t){
      if( p.hasOwnProperty( t ) ){
        return true;
      }
    }
    return false;
  }catch(e){
    console.log("ERROR : "+e);
    return e;
  }
}
 

Yani elden ├Ânce potansiyel bir sorunu kontrol etmek zorunda de─čilsiniz, basit├že onu yakalamak ve sonra nas─▒l istedi─činiz ile ba┼ča ├ž─▒kmak.


0







 try{

     let vari = obj.propTest; // obj may be don't have propTest property

        ...
} catch(NullException){
    // do something here
}
 

Bence try catch kullanmak, null onay hatalar─▒n─▒ da ├Ânleyecektir, ayr─▒ca Angular veya JavaScript de.


0







E─čer jAndy'nin cevab─▒na g├Âre, de─čer a┼ča─č─▒dakilerden herhangi biri ise, do─čru olmaktan ka├ž─▒nmak istiyorsan─▒z :

  • bo┼č
  • Tan─▒ms─▒z
  • NaN
  • bo┼č dize ("")
  • 0
  • yanl─▒┼č

Do─čruluk de─čerleri elde etmekten ka├ž─▒nabilecek olas─▒ bir ├ž├Âz├╝m ┼čudur:

 function isUsable(valueToCheck) {
    if (valueToCheck === 0     || // Avoid returning false if the value is 0.
        valueToCheck === ''    || // Avoid returning false if the value is an empty string.
        valueToCheck === false || // Avoid returning false if the value is false.
        valueToCheck)             // Returns true if it isn't null, undefined, or NaN.
    {
        return true;
    } else {
        return false;
    }
}
 

hasOwnProperty bo┼č dizeler i├žin true, 0, false, NaN, null ve undefined de─čerlerini d├Ând├╝r├╝r, e─čer de─či┼čken bunlardan biri olarak bildirildiyse, kullan─▒m─▒ en iyi olmayabilir. ─░┼člev, bildirildi─čini, ancak kullan─▒lamad─▒─č─▒n─▒ g├Âstermek i├žin kullanmak ├╝zere de─či┼čtirilebilir.

A┼ča─č─▒daki gibi kullan─▒lacakt─▒:

 if (isUsable(x)) {
    // It is usable!
}
// Make sure to avoid placing the logical NOT operator before the parameter (isUsable(!x)) and instead, use it before the function, to check the returned value.
if (!isUsable(x)) {
    // It is NOT usable!
}
 

0







Bu fonksiyon kontrol├╝ i├žin empty object {} , empty array [] , null , undefined ve blank string ""

 function isEmpty(val) {
  //check for empty object {}, array []
  if (val !== null && typeof val === 'object') {
    if (Object.keys(obj).length === 0) {
      return true;
    }
  }
  //check for undefined, null and "" 
  else if (val == null || val === "") {
    return true;
  }
  return false;
}
 

var val = {};
isEmpty (val) -> true
val = [];
isEmpty (val) -> true
isEmpty (undefined) -> true
isEmpty (null) -> true
isEmpty ("") -> do─čru
isEmpty (yanl─▒┼č) -> yanl─▒┼č
isEmpty (0) -> yanl─▒┼č


-1







E┼čitlik operat├Âr├╝n├╝ do─črudan kullanabilirsiniz

 <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 @ De─či┼čken tan─▒ms─▒z m─▒ yoksa JavaScript kullan─▒larak null mu oldu─ču nas─▒l belirlenir


-1



─░lgili yay─▒nlar


JavaScript'te string e┼čitli─čini kontrol etmenin do─čru yolu nedir?

JavaScript'te tan─▒ms─▒z veya bo┼č bir de─či┼čken nas─▒l kontrol edilir?

Hem 'null' hem de 'undefined' olup olmad─▒─č─▒n─▒ kontrol etmenin bir yolu var m─▒?

Twig'de null nas─▒l kontrol edilir?

Objective-C bo┼č bir dize denetlemenin do─čru yolu nedir?

WPF'nin ┼ču anda tasar─▒m modunda ├žal─▒┼č─▒p ├žal─▒┼čmad─▒─č─▒n─▒ kontrol etmenin bir yolu var m─▒?

Bo┼č de─čerleri denetlemenin do─čru yolu nedir?

Bir web sayfas─▒nda hangi CSS stillerinin kullan─▒ld─▒─č─▒n─▒ veya kullan─▒lmad─▒─č─▒n─▒ kontrol etmenin bir yolu var m─▒?

Bir EJS ┼čablonunda (ExpressJS kullanarak) de─či┼čkenin varl─▒─č─▒n─▒ kontrol etmenin do─čru yolu nedir?

JavaScript kullanarak t├╝m metnin se├žimini kald─▒ran bir i┼člev var m─▒?

Etiketle ilgili di─čer sorular [javascript]


PHP ve Numaralamalar

Bir algoritman─▒n zaman karma┼č─▒kl─▒─č─▒ nas─▒l bulunur

Bir MySQL veritaban─▒ / tablosu / s├╝tununun hangi karakteri ayarlad─▒─č─▒n─▒ nas─▒l g├Ârebilirim?

Matplotlib'de bir arsa temizlemek i├žin ne zaman cla (), clf () veya close () kullan─▒l─▒r?

Node.js dosyas─▒nda dosyay─▒ kopyalaman─▒n en h─▒zl─▒ yolu

Android: Animasyonu geni┼člet / daralt

Ba┼čka bir div i├žindeki 3 div (sol / orta / sa─č) nas─▒l hizalan─▒r?

C++ program─▒n─▒ ├ž├Âkertmenin en kolay yolu nedir?

Do─čru Listeleri Nas─▒l R Kullan─▒l─▒r?

PHP - ─░ki dizinin e┼čit olup olmad─▒─č─▒n─▒ kontrol edin