рд╡рд┐рднреЗрджрдХ рд╡рд╕реНрддреБ, рд╕рд░рдгреА, рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ

рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, jQuery.each рд╡рд┐рдзрд┐ рдореИрдВ рд╣рдореЗрд╢рд╛ рдХреЗрд╡рд▓ jQuery рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП / рдЬрдмрдХрд┐ рдЫреЛрд░реЛрдВ рдпрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ "рдкреНрд░рддреНрдпреЗрдХ" рд╕рдордХрдХреНрд╖ рд╣реИрдВред рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдорд┐рдердХ рдХреЛ рдирд╖реНрдЯ рдХрд░реЛред

JQuery рдХрд╛ рддрд░реНрдХ


рдЖрдЗрдП jQuery.each рд╡рд┐рдзрд┐ рдХреЗ рддрд░реНрдХ рдХреЛ рджреЗрдЦреЗрдВред рдЗрдирдкреБрдЯ рдкрд░, рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЪрд╛рд╣реЗ рд╡рд╣ рдПрдХ рд╡рд╕реНрддреБ рд╣реЛ рдпрд╛ рди рд╣реЛ:
length = obj.length, isObj = length === undefined || jQuery.isFunction( obj ); 

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдЕрдЧрд░ рдЗрд╕рдХреА рд▓рдВрдмрд╛рдИ рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред рдФрд░ рдЕрдЧрд░ рд▓рдВрдмрд╛рдИ рд╣реИ, рддреЛ рдпрд╣ рдРрд░реЗ рд╣реИред
рдмрд╣реБрдд рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд╣реАрдВ рд╣реИред рдЖрдЗрдП рдЗрд╕реЗ рджреЗрдЦреЗрдВред

рдЪрд▓реЛ рдХрдИ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ "рдУрдмреНрдЬ" рдмрдирд╛рдПрдВ, рдЬрд┐рд╕рдХреЗ рдмреАрдЪ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рд▓рдВрдмрд╛рдИред
 var Obj = { name: "test", size: 2, length: 5 }; 

рдЕрдм рдЗрд╕реЗ jQuery.each рдХреЛ рджреЗрдВ:
 $.each( Obj, function() { console.log( this, arguments ); } ); 

рдирд┐рд╖реНрдкрд╛рджрди рдкрд░рд┐рдгрд╛рдо:
 Window [0, undefined] Window [1, undefined] Window [2, undefined] Window [3, undefined] Window [4, undefined] 

рд╡рд┐рдлрд▓рддрд╛ред jQuery рдиреЗ рдЗрд╕реЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛, рдФрд░ рд▓реВрдк рдХреЗ рд▓рд┐рдП рдбрдореА рд▓рдВрдмрд╛рдИ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛,
рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдВ? рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдереЗред рдЕрдм рд╣рдо рдзреАрд░реЗ-рдзреАрд░реЗ рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рд╣рдо рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдФрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддрдХ рдкрд╣реБрдВрдЪреЗрдВрдЧреЗред

рд╡рд┐рдзрд┐ рдПрдХ: рдЯрд╛рдЗрдкреЛрдлрд╝


рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрдВ рд╢реЛрднрд╛ рдирд╣реАрдВ рджреЗрддреА, рдХреНрдпреЛрдВрдХрд┐ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╕рд░рдгреА рджреЛрдиреЛрдВ рдХрд╛ рдкреНрд░рдХрд╛рд░ "рдСрдмреНрдЬреЗрдХреНрдЯ" рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рд╣рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдлрд┐рд░ рд╕реЗ рдПрдХ "рдСрдмреНрдЬреЗрдХреНрдЯ" рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рд╡реЗ рдирдП рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

рд╡рд┐рдзрд┐ рджреЛ: Instof


рдпрд╣рд╛рдБ рдореИрдВ рдЧрд▓рдд рдерд╛ред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЯреЛрдкреА рд╣реИ, рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдзрд┐ рдорд┐рд▓реАред
рд▓реЗрдХрд┐рди рдЕрдЧрд▓реЗ рдиреБрдХрд╕рд╛рди рд╕реЗ рдмрдЪрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛:
 var a = {}; a instanceof Object; => true var b = []; b instanceof Array; => true var c = 5; c instanceof Number; => false var d = ""; d instanceof String; => false 

рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрдВрд╕реНрдЯреЛрдлрд╝ рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдФрд░ рддрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рд╡реЗ рдирдП рдСрдкрд░реЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЖрдЧреЗ рдмрдврд╝реЛред

рд╡рд┐рдзрд┐ рддреАрди: рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░


рдпрд╣рд╛рдБ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИред рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдХреА рддреБрд▓рдирд╛ред
 var a = {}; a.constructor === Object; => true var b = []; b.constructor === Array; => true var c = 5; c.constructor === Number; => true var d = ""; d.constructor === String; => true 

рдПрдХ рдкреВрд░реА рддрд╕реНрд╡реАрд░ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рддрд╛рд▓рд┐рдХрд╛:
рдХреЗ рд░рд╛рд╕реНрддреЗtypeofinstanceofрдирд┐рд░реНрдорд╛рддрд╛
рдирдпрд╛ рдРрд░реЗ ()┬лрд╡рд╕реНрддреБ┬╗рд╕рдЪрд╕рдЪ
[]┬лрд╡рд╕реНрддреБ┬╗рд╕рдЪрд╕рдЪ
рдирдИ рд╡рд╕реНрддреБ ()┬лрд╡рд╕реНрддреБ┬╗рд╕рдЪрд╕рдЪ
{}┬лрд╡рд╕реНрддреБ┬╗рд╕рдЪрд╕рдЪ
рдирдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ ()┬лрд╡рд╕реНрддреБ┬╗рд╕рдЪрд╕рдЪ
""┬лрд╕реНрдЯреНрд░рд┐рдВрдЧ┬╗рдЭреВрдард╛рд╕рдЪ
рдирдпрд╛ рдирдВрдмрд░ ()┬лрд╡рд╕реНрддреБ┬╗рд╕рдЪрд╕рдЪ
5┬лрд╕рдВрдЦреНрдпрд╛┬╗рдЭреВрдард╛рд╕рдЪ

рдирд┐рд╖реНрдХрд░реНрд╖:


рд╢рд╛рдпрдж рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП (рдореИрдВрдиреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдирд╣реАрдВ рд▓рд┐рдпрд╛):
 each: function( obj, callback, args ) { var name, i = 0, length = obj.length, isObj = obj.constructor === Object, isArray = obj.constructor === Array || obj.constructor === String; if ( isObj ) { for ( name in obj ) { if ( callback.call( obj[ name ], name, obj[ name ] ) === false ) { break; } } } else if ( isArray ) { for ( ; i < length; ) { if ( callback.call( obj[ i ], i, obj[ i++ ] ) === false ) { break; } } } } 

рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред

рдпреБрдкреАрдбреАред
рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рджрд┐рдЦрд╛рдирд╛ рд╣реИ, рдФрд░ jQuery рдореЗрдВ рдмрдЧ рдХреЛ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред
рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ "toString" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЬрд▓реНрдж рд╣реА рдореИрдВ рд▓реЗрдЦ рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХрд░реВрдВрдЧрд╛ред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рд╡рд┐рд╖рдп рдореЗрд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рднреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

Source: https://habr.com/ru/post/In151677/


All Articles