
рдпрд╣рд╛рдВ, рдЖрдЦрд┐рд░рдХрд╛рд░, рд╡реЗ рдХрдИ рд╕рд╛рдЗрдХрд┐рд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реЛрдВ рдУрд░ рд╣реЛ рдЧрдП (рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдм рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд╣рдмрд░рд╛рдХрдд рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХреБрдЫ рдкрдХреНрд╖ рдФрд░ рд╡рд┐рдкрдХреНрд╖:
рдкреЗрд╢реЗрд╡рд░реЛрдВ рд╕реЗ:
- jsperf рдЧрддрд┐ (precompiled рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг: jsperf )
- рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА: = рдХрд╕реНрдЯрдо рдирд┐рдпрдВрддреНрд░рдг, рдЯреЗрдореНрдкрд▓реЗрдЯ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди
- рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ
- рдЖрдЧреЗ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП json рдореЗрдВ рд╕рдВрдХрд▓рди
- рдЕрдЪреНрдЫрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ (рддрд░реНрдХ рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдХреЛрдИ рдорд┐рд╢реНрдорд╢ рдирд╣реАрдВ)
рдиреБрдХрд╕рд╛рди рдХреА:
- рдЯреЗрдореНрдкрд▓реЗрдЯ рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рд╢рд╛рдмреНрджрд┐рдХ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЗрдВ - рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ)
рдпрджрд┐ рд╡рд┐рд╖рдп рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ -
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдореБрдЭреЗ рддреБрд░рдВрдд рд╡реНрдпрд╛рдХрд░рдг / рд╢реИрд▓реА рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрдиреЗ рджреЗрдВред рдореИрдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рддрд╛рдХрд┐ рд╣рд░ рдХреЛрдИ рдореБрдЭреЗ рд╕рдордЭреЗ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗ рдореБрдЭреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреЗрдВред рдЖрдк рдРрд╕реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рд╡рд╕реНрддреБрддрдГ рд╕рдм рдХреБрдЫ "рд╕рдордЭрддреЗ рд╣реИрдВ" - рдмрд▓реНрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡, рдирд┐рд░реНрдгрдп рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рдеред рдФрд░ рдЪреВрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдмрд╣реБрдд рдХрдо рдЕрдиреБрднрд╡ рд╣реИ, рд╕рд╛рде рд╣реА рд░реВрд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рднреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╢рд╛ рдХреЛ рдирдХрд╛рд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдЗрд╕рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛, рдФрд░ рдЖрдк рдХрд╕рдо рдирд╣реАрдВ рдЦрд╛рддреЗредрдереЛрдбрд╝рд╛ рдЗрддрд┐рд╣рд╛рд╕
рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореБрдЭреЗ
String.format('N: #{a} : #{b}',{a:1,b:2})
рдПрдХ рдлрдВрдХреНрд╢рди рдХреА рдЬрд░реВрд░рдд рдереАред
рдореБрдЭреЗ рдЬрд▓реНрдж рд╣реА рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ html рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рд╣рд╛рде рдмрдВрдзреЗ рд╣реИрдВред рд╕рдм рдХреЗ рдмрд╛рдж, рдПрдХ рд╣рд╛рд▓рдд, рд╕рд╢рд░реНрдд рджреГрд╢реНрдпрддрд╛ рдФрд░ рд╕реВрдЪрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рд░реВрдкрдг рдЪрд╛рд╣рддрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ
html рдФрд░
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд┐рд╢реНрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдВрдЧрд▓реА рдШреГрдгрд╛ рдорд╣рд╕реВрд╕ рд╣реБрдИ, рд╕рд╛рде
with(){}
рдФрд░
eval/new Function('')
рднреА рдХреГрдкрдпрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд┐ "рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдереЛрдбрд╝реА рдЬрд╝рд░реВрд░рдд рд╣реИ" рдФрд░ рдЕрдкрдиреЗ рд▓рд┐рдП рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рддреЛ рджреЛ рдЯреИрдЧ
list
рдФрд░
visible
рдФрд░
#{a==1?1:-1}
рдЬреИрд╕реЗ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖред рдореБрдЭреЗ рд╕рд┐рд░реНрдл рдПрдХ regexp рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдвреВрдВрдврдирд╛ рдерд╛, рдФрд░
String.format
ред рдФрд░ рдбреЗрдврд╝ рд╕рд╛рд▓, рдЗрд╕ рдЗрдВрдЬрди рдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдиреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреА рд╕реЗрд╡рд╛ рдХреА - рдпрд╣ рдлреБрд░реНрддреАрд▓рд╛ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдерд╛ред
"рдФрд░ рд╣рдо рд╣рдореЗрд╢рд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВ ..."
рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрддрдиреЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИрдВ - рдареАрдХ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдореИрдВ рд╣реВрдВред рдореИрдВ рдЗрд╕реЗ рдФрд░ рднреА рддреЗрдЬреА рд╕реЗ, рдФрд░ рднреА рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд┐
html / рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрд╕ рдХреЗ рдмрд┐рдирд╛ рдЖрдЧреЗред рдЙрд╕ рд╕рдордп рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдирддрд╛ рдерд╛: рдореБрдЭреЗ рдХрд╕реНрдЯрдо рдЯреИрдЧ рдЪрд╛рд╣рд┐рдП - рддрд╛рдХрд┐ рдореИрдВ
рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЗ рдмрд┐рдирд╛ рджрд╕ рдмрд╛рд░ рдПрдХ рд╣реА HTML рд╕рдВрд░рдЪрдирд╛ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛
(рддрд╛рдХрд┐ рдШрд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рд╡рд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реВрдВ) ред рдФрд░ рдЕрдм, рдЬреИрд╕реЗ рд╣реА рдореИрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреИрдЧ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд░ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрда рдЧрдпрд╛, рддрдм, рдмрд╛рд╣рд░, рдХрд▓рд╛ рдХреА рдЗрдЪреНрдЫрд╛, рдЬреЛ рд╢рд┐рдерд┐рд▓ рд╣реЛрдиреЗ рд▓рдЧреА, рдЬрд╛рдЧ рдЙрдард╛ - "
рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ред рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ред рдпрд╣ 93 рд╡реЗрдВ рдХреЗ рдлреЛрд░реНрдб рдореЛрдВрдбреЛ рд╣реИред рдФрд░ рдЕрдм рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╣рд╕реНрддреНрд░рд╛рдмреНрджреА рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рд╣рд╛рдВ, рд╡рд╣рд╛рдБ рд╣реИред рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЕрд▓рдЧ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ CoffeeScript Sass / Less ZenCoding рджреЗрдЦреА рд╣реИ? рдЬрд┐рд╕ рд╕реЗ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВ, рдЕрдиреНрдпрдерд╛ рдореИрдВ рдЖрдкрдХреЛ рд╕реЛ рдЬрд╛рдиреЗ рдирд╣реАрдВ рджреЗрддрд╛ - рдмрд╕ рдкрддрд╛ рд╣реИ ред " рдФрд░ рдЗрд╕ рджрдмрд╛рд╡ рдореЗрдВ рдореИрдВ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдореБрдЦреНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдЗрдВрдЬрди рдХреА рдЧрддрд┐ рдереА - рдХрд┐рд╕реА рдХреЛ рднреА рдПрдХ рд╕реБрдВрджрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди 100 рдПрдЪрдкреА рдХреЗ рд╕рд╛рдеред рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрд╛рд░ред
рдЪрд▓реЛ рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░реЛ: рд▓рдХрдбрд╝реА
рдЪреВрдВрдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рдкреЗрдбрд╝ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдиреЛрдб рд╣реИрдВ: рдЯреИрдЧ =
{tagName:'someTagName', attr: { key:'value'}, nodes:[] }
рдФрд░ рд▓рд┐рдЯрд░рд▓ =
{content:'Some String'}
ред рдФрд░ рдкреБрд░рд╛рдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ 1.5 рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдбреЗрдЯрд╛ рдХреЛ рдЯреИрдЧ рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдХреЗ рдирд╛рдо рдкрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВрдВрдЧрд╛, рдлрд┐рд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдЙрдирдореЗрдВ рдбреЗрдЯрд╛ рдбрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдиреЛрдбреНрд╕ рдирд┐рдореНрди рд░реВрдк рдореЗрдВ рд╣реЛрдВрдЧреЗ: рдЯреИрдЧ: =
{tagName:'name', attr: { key:('value'||function)}, nodes:[] }
рдФрд░ рд▓рд┐рдЯрд░рд▓: =
{content:('Some String'||function)}
ред рдЬрд╣рд╛рдВ
function
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдЙрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд┐рдирдХреА рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдПрдХ рдкреЗрдбрд╝ рд▓рдЧрд╛рдпрд╛, рдЕрдм рддрдХ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ (
рдпрд╣ рдпрд╛ рддреЛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ )ред
рдПрдирд╛рд▓рд╛рдЗрдЬрд░ / рдкрд╛рд░реНрд╕рд░
рджрд┐рд▓рдЪрд╕реНрдк рдЕрдВрдХ:
- рд╣рдо рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рдЖрдЧреЗ "рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди" рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧреЛрдВ рдкрд░ рднреА рдХреВрдж рд╕рдХрддреЗ рд╣реИрдВ
- рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд╛ рдХрдо рд╕реЗ рдХрдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХреЛрдИ рднреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдирд╣реАрдВ
- рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
var T = {index:0 /* currentIndex */, length:template.length, template:template}
ред рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛ рдмрд▓реНрдХрд┐, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЗрд╕ рддрд░рд╣ рд╕реЗ template string
рдирдХрд▓ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ - charCodeAt - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ charAt рдпрд╛ [] рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЧреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд░реЛрдмреЛрдЯ рддреЗрдЬрд╝ рд╣реИ
рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИ - рдпрд╣ 40 рд▓рд╛рдЗрдиреЗрдВ рд╣реИред
(рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рджреГрд╢реНрдпрддрд╛ рдЦреЛ рдЬрд╛рдПрдЧреА)рдХреЛрдб рдХрд╛ рдЯреБрдХрдбрд╝рд╛ var current = T; for (; T.index < T.length; T.index++) { var c = T.template.charCodeAt(T.index); switch (c) { case 32:
рдбрд┐рдЬрд╛рдЗрдирд░
рдкреЗрдбрд╝ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП
html string
рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдмреЗрдХрд╛рд░ рд╣реИ, рдЖрдкрдХреЛ рддреБрд░рдВрдд рд╣реА
documentFragment
рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛
(рд╣рд╛рд▓рд╛рдБрдХрд┐ function renderHtml
рднреА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ) ред рдпрд╣ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдкрд░ рдмрд┐рддрд╛рдП рдЧрдП рд╕рдордп рдХреА рдмрд╣реБрдд рднрд░рдкрд╛рдИ рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдлрд┐рд░ рд╕реЗ рддреБрдЪреНрдЫ рд╣реИ:
рдХреЛрдб рдХрд╛ рдЯреБрдХрдбрд╝рд╛ function buildDom(node, values, container) { if (container == null) container = document.createDocumentFragment(); if (node instanceof Array) { for (var i = 0, length = node.length; i < length; i++) buildDom(node[i], values, container); return container; } if (CustomTags.all[node.tagName] != null) { var custom = new CustomTags.all[node.tagName](); for (var key in node) custom[key] = node[key]; custom.render(values, container); return container; } if (node.content != null) {
рдХрд╕реНрдЯрдо рдирд┐рдпрдВрддреНрд░рдг
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╕реНрдЯрдо рдирд┐рдпрдВрддреНрд░рдг рджреГрд╢реНрдп рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдПрдХ рдкрдВрдЬреАрдХреГрдд рдЯреИрдЧ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдЧрд╛,
attr
рдФрд░
nodes
рдорд╛рдиреЛрдВ рдХреА рдПрдХ
shallow copy
рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрд╕реЗрдВрдмрд▓реА рд╕рдВрджрд░реНрдн рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ
.render(currentValues, container)
рдлрд╝рдВрдХреНрд╢рди
.render(currentValues, container)
рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
Function (рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╕реНрдЯреНрд░рд┐рдВрдЧ)
рджрд░рдЕрд╕рд▓ рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЬрд╛рджреВ рд╣реЛрддрд╛ рд╣реИред рд╕рдЪ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдЬрд╛рджреВ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддреЗ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдмрд╣реБрдд рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд░реНрдЬрд╝реЗ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдпрд╣
- рдпрд╛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рдЧреБрдгреЛрдВ рдХреА рдХреБрдВрдЬреА, "рдкреБрдирд░рд╛рд╡рд░реНрддрди"
#{obj.other.value}
- рдпрд╛ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ
#{fnName:line}
ред рдпрджрд┐ fnName рдПрдХ рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рддреЛ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд▓рд╛рдЗрди рдПрдХ рд╢рд░реНрдд рд╣реИ рдФрд░ ValueUtilities.condition(line, values)
рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕рдВрддреБрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧреА
, рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред
рдЦреИрд░, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд░реЛрд╢рди рд╣реИред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЖрдк рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рдЗрдВрдбрд░реЛрдВ рдХреА рддрд╛рд░реАрдЦ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдирдореВрдирд╛ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рднреА рджреЗрдЦреЗрдВред
рдЙрджрд╛рд╣рд░рдгрд╕реНрд░реЛрдд рдХреЛрдб
offtopic:
рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдореЗрдВ рдХрдИ рдФрд░ "рдмрдбрд╝реЗ рд╡рд╛рд▓реЗ" рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ - рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди "рдЧреБрдбрд┐рдпреЛрдВ" рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЧреБрдЪреНрдЫрд╛ рдХреЗ рд╕рд╛рдеред рдЕрдЧрд░ рдРрд╕реА рдЪреАрдЬреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд╣реИ (рдпрд╣ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд░рд┐рд▓реАрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ рд╣реИ) рддреЛ рдореИрдВ рдЗрд╕реЗ рдЧреАрдереВрдм рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦреВрдВрдЧрд╛ред
рд╕реМрднрд╛рдЧреНрдп рд╣реИ