Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: javascript-tutorial/hi.javascript.info
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: javascript-tutorial/hi.javascript.info
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: sync-1dce5b72
Choose a head ref
Loading
Showing with 5,210 additions and 1,745 deletions.
  1. +1 −0 .github/FUNDING.yml
  2. +1 −0 .gitignore
  3. +67 −0 1-js/01-getting-started/1-intro/article.md
  4. +27 −0 1-js/01-getting-started/2-manuals-specifications/article.md
  5. +22 −0 1-js/01-getting-started/3-code-editors/article.md
  6. +10 −0 1-js/02-first-steps/01-hello-world/article.md
  7. +36 −4 1-js/02-first-steps/02-structure/article.md
  8. +4 −0 1-js/02-first-steps/04-variables/2-declare-variables/solution.md
  9. +12 −1 1-js/02-first-steps/04-variables/3-uppercast-constant/task.md
  10. +78 −0 1-js/02-first-steps/04-variables/article.md
  11. +43 −32 1-js/02-first-steps/05-types/article.md
  12. +4 −4 1-js/02-first-steps/07-type-conversions/article.md
  13. +1 −2 1-js/02-first-steps/08-operators/3-primitive-conversions-questions/solution.md
  14. +0 −1 1-js/02-first-steps/08-operators/3-primitive-conversions-questions/task.md
  15. +33 −23 1-js/02-first-steps/08-operators/article.md
  16. +1 −1 1-js/02-first-steps/09-comparison/article.md
  17. +1 −1 1-js/02-first-steps/10-ifelse/2-check-standard/task.md
  18. +7 −3 1-js/02-first-steps/10-ifelse/article.md
  19. +1 −1 1-js/02-first-steps/11-logical-operators/3-alert-1-null-2/solution.md
  20. +3 −3 1-js/02-first-steps/11-logical-operators/article.md
  21. +21 −18 1-js/02-first-steps/12-nullish-coalescing-operator/article.md
  22. +33 −8 1-js/02-first-steps/13-while-for/article.md
  23. +2 −2 1-js/02-first-steps/14-switch/article.md
  24. +3 −1 1-js/02-first-steps/15-function-basics/1-if-else-required/solution.md
  25. +1 −1 1-js/02-first-steps/15-function-basics/2-rewrite-function-question-or/solution.md
  26. +75 −24 1-js/02-first-steps/15-function-basics/article.md
  27. +29 −17 1-js/02-first-steps/16-function-expressions/article.md
  28. +1 −1 1-js/02-first-steps/17-arrow-functions-basics/1-rewrite-arrow/solution.md
  29. +1 −1 1-js/02-first-steps/17-arrow-functions-basics/1-rewrite-arrow/task.md
  30. +11 −11 1-js/02-first-steps/17-arrow-functions-basics/article.md
  31. +7 −7 1-js/02-first-steps/18-javascript-specials/article.md
  32. +11 −12 1-js/03-code-quality/01-debugging-chrome/article.md
  33. +6 −6 1-js/03-code-quality/02-coding-style/article.md
  34. +4 −0 1-js/03-code-quality/03-comments/article.md
  35. +9 −9 1-js/03-code-quality/05-testing-mocha/article.md
  36. +36 −3 1-js/03-code-quality/06-polyfills/article.md
  37. +11 −10 1-js/04-object-basics/01-object/article.md
  38. +121 −19 1-js/04-object-basics/02-object-copy/article.md
  39. +12 −12 1-js/04-object-basics/03-garbage-collection/article.md
  40. +5 −0 1-js/04-object-basics/04-object-methods/7-calculator/_js.view/test.js
  41. +1 −2 1-js/04-object-basics/04-object-methods/7-calculator/task.md
  42. +1 −0 1-js/04-object-basics/04-object-methods/8-chain-calls/_js.view/solution.js
  43. +8 −0 1-js/04-object-basics/04-object-methods/8-chain-calls/_js.view/test.js
  44. +4 −4 1-js/04-object-basics/04-object-methods/8-chain-calls/solution.md
  45. +7 −5 1-js/04-object-basics/04-object-methods/8-chain-calls/task.md
  46. +3 −3 1-js/04-object-basics/04-object-methods/article.md
  47. +3 −3 1-js/04-object-basics/06-constructor-new/1-two-functions-one-object/task.md
  48. +5 −0 1-js/04-object-basics/06-constructor-new/2-calculator-constructor/_js.view/test.js
  49. +1 −1 1-js/04-object-basics/06-constructor-new/2-calculator-constructor/task.md
  50. +8 −7 1-js/04-object-basics/06-constructor-new/article.md
  51. +39 −24 1-js/04-object-basics/07-optional-chaining/article.md
  52. +26 −14 1-js/04-object-basics/08-symbol/article.md
  53. +59 −34 1-js/04-object-basics/09-object-toprimitive/article.md
  54. +4 −0 1-js/05-data-types/01-primitives-methods/1-string-new-property/task.md
  55. +4 −3 1-js/05-data-types/01-primitives-methods/article.md
  56. +1 −1 1-js/05-data-types/02-number/2-why-rounded-down/solution.md
  57. +99 −44 1-js/05-data-types/02-number/article.md
  58. +1 −7 1-js/05-data-types/03-string/1-ucfirst/solution.md
  59. +2 −2 1-js/05-data-types/03-string/3-truncate/task.md
  60. +68 −81 1-js/05-data-types/03-string/article.md
  61. +2 −2 1-js/05-data-types/04-array/10-maximal-subarray/solution.md
  62. +1 −1 1-js/05-data-types/04-array/2-create-array/task.md
  63. +1 −1 1-js/05-data-types/04-array/3-call-array-this/task.md
  64. +57 −20 1-js/05-data-types/04-array/article.md
  65. +1 −1 1-js/05-data-types/05-array-methods/12-reduce-object/task.md
  66. +3 −3 1-js/05-data-types/05-array-methods/3-filter-range-in-place/_js.view/test.js
  67. +64 −31 1-js/05-data-types/05-array-methods/article.md
  68. +6 −6 1-js/05-data-types/06-iterable/article.md
  69. +42 −33 1-js/05-data-types/07-map-set/article.md
  70. +1 −1 1-js/05-data-types/08-weakmap-weakset/01-recipients-read/solution.md
  71. +18 −10 1-js/05-data-types/08-weakmap-weakset/article.md
  72. +6 −5 1-js/05-data-types/09-keys-values-entries/article.md
  73. +4 −6 1-js/05-data-types/10-destructuring-assignment/6-max-salary/_js.view/solution.js
  74. +74 −47 1-js/05-data-types/10-destructuring-assignment/article.md
  75. +1 −1 1-js/05-data-types/11-date/1-new-date/solution.md
  76. +4 −4 1-js/05-data-types/11-date/article.md
  77. +5 −5 1-js/05-data-types/12-json/article.md
  78. +1 −1 1-js/06-advanced-functions/01-recursion/01-sum-to/solution.md
  79. +1 −1 1-js/06-advanced-functions/01-recursion/05-output-single-linked-list-reverse/solution.md
  80. +3 −3 1-js/06-advanced-functions/01-recursion/article.md
  81. +9 −3 1-js/06-advanced-functions/02-rest-parameters-spread/article.md
  82. +2 −2 1-js/06-advanced-functions/03-closure/10-make-army/solution.md
  83. +2 −0 1-js/06-advanced-functions/03-closure/5-function-in-if/task.md
  84. +1 −1 1-js/06-advanced-functions/03-closure/7-let-scope/solution.md
  85. +1 −1 1-js/06-advanced-functions/03-closure/9-sort-by-field/_js.view/test.js
  86. +2 −2 1-js/06-advanced-functions/03-closure/article.md
  87. +8 −8 1-js/06-advanced-functions/04-var/article.md
  88. +2 −2 1-js/06-advanced-functions/05-global-object/article.md
  89. +1 −1 1-js/06-advanced-functions/06-function-object/5-sum-many-brackets/solution.md
  90. +1 −1 1-js/06-advanced-functions/06-function-object/article.md
  91. +5 −5 1-js/06-advanced-functions/08-settimeout-setinterval/article.md
  92. +1 −2 1-js/06-advanced-functions/09-call-apply-decorators/04-throttle/solution.md
  93. +1 −1 1-js/06-advanced-functions/09-call-apply-decorators/04-throttle/task.md
  94. +10 −10 1-js/06-advanced-functions/09-call-apply-decorators/article.md
  95. +1 −1 1-js/06-advanced-functions/10-bind/5-question-use-bind/solution.md
  96. +4 −4 1-js/06-advanced-functions/10-bind/article.md
  97. +2 −2 1-js/06-advanced-functions/12-arrow-functions/article.md
  98. +30 −22 1-js/07-object-properties/01-property-descriptors/article.md
  99. +1 −1 1-js/07-object-properties/02-property-accessors/article.md
  100. +6 −3 1-js/08-prototypes/01-prototype-inheritance/article.md
  101. +8 −3 1-js/08-prototypes/02-function-prototype/4-new-object-same-constructor/solution.md
  102. +1 −1 1-js/08-prototypes/03-native-prototypes/article.md
  103. +1 −1 1-js/08-prototypes/04-prototype-methods/2-dictionary-tostring/solution.md
  104. +60 −41 1-js/08-prototypes/04-prototype-methods/article.md
  105. +4 −4 1-js/09-classes/01-class/article.md
  106. +9 −12 1-js/09-classes/02-class-inheritance/article.md
  107. +4 −4 1-js/09-classes/03-static-properties-methods/3-class-extend-object/solution.md
  108. +24 −9 1-js/09-classes/03-static-properties-methods/article.md
  109. +2 −2 1-js/09-classes/04-private-protected-properties-methods/article.md
  110. +1 −1 1-js/09-classes/06-instanceof/article.md
  111. +2 −2 1-js/09-classes/07-mixins/article.md
  112. +5 −5 1-js/10-error-handling/1-try-catch/1-finally-or-code-after/solution.md
  113. +4 −4 1-js/10-error-handling/1-try-catch/1-finally-or-code-after/task.md
  114. +68 −68 1-js/10-error-handling/1-try-catch/article.md
  115. +6 −6 1-js/10-error-handling/2-custom-errors/article.md
  116. +10 −8 1-js/11-async/01-callbacks/article.md
  117. +1 −1 1-js/11-async/02-promise-basics/03-animate-circle-promise/solution.view/index.html
  118. +55 −31 1-js/11-async/02-promise-basics/article.md
  119. +7 −8 1-js/11-async/03-promise-chaining/article.md
  120. +1 −0 1-js/11-async/04-promise-error-handling/article.md
  121. +8 −4 1-js/11-async/05-promise-api/article.md
  122. +2 −2 1-js/11-async/06-promisify/article.md
  123. +4 −4 1-js/11-async/07-microtask-queue/article.md
  124. +1 −1 1-js/11-async/08-async-await/01-rewrite-async/solution.md
  125. +1 −1 1-js/11-async/08-async-await/01-rewrite-async/task.md
  126. +1 −1 1-js/11-async/08-async-await/02-rewrite-async-2/solution.md
  127. +17 −10 1-js/11-async/08-async-await/article.md
  128. +1 −1 1-js/12-generators-iterators/1-generators/01-pseudo-random-generator/solution.md
  129. +22 −0 1-js/12-generators-iterators/1-generators/article.md
  130. +2 −0 1-js/12-generators-iterators/2-async-iterators-generators/article.md
  131. +60 −32 1-js/13-modules/01-modules-intro/article.md
  132. +27 −30 1-js/13-modules/02-import-export/article.md
  133. +4 −12 1-js/99-js-misc/03-currying-partials/article.md
  134. +3 −3 1-js/99-js-misc/04-reference-type/article.md
  135. +172 −0 1-js/99-js-misc/06-unicode/article.md
  136. +483 −0 1-js/99-js-misc/07-weakref-finalizationregistry/article.md
  137. BIN 1-js/99-js-misc/07-weakref-finalizationregistry/google-chrome-developer-tools.png
  138. +49 −0 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-dom.view/index.css
  139. +28 −0 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-dom.view/index.html
  140. +24 −0 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-dom.view/index.js
  141. +32 −0 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-01.svg
  142. +33 −0 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-02.svg
  143. +75 −0 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-03.svg
  144. +77 −0 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-04.svg
  145. +103 −0 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-05.svg
  146. BIN 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-demo-01.png
  147. BIN 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-demo-02.png
  148. BIN 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-demo-03.gif
  149. BIN 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-demo-04.jpg
  150. BIN 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-demo-05.gif
  151. BIN 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-demo-06.jpg
  152. BIN 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-demo-07.gif
  153. BIN 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry-demo-08.jpg
  154. +285 −0 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry.view/index.css
  155. +49 −0 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry.view/index.html
  156. +228 −0 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry.view/index.js
  157. +321 −0 1-js/99-js-misc/07-weakref-finalizationregistry/weakref-finalizationregistry.view/utils.js
  158. +20 −20 2-ui/1-document/01-browser-environment/article.md
  159. +5 −1 2-ui/1-document/02-dom-nodes/article.md
  160. +1 −1 2-ui/1-document/03-dom-navigation/article.md
  161. +4 −4 2-ui/1-document/04-searching-elements-dom/article.md
  162. +33 −10 2-ui/1-document/05-basic-dom-node-properties/article.md
  163. +1 −1 2-ui/1-document/06-dom-attributes-and-properties/article.md
  164. +1 −1 2-ui/1-document/07-modifying-document/1-createtextnode-vs-innerhtml/task.md
  165. +4 −1 2-ui/1-document/07-modifying-document/10-clock-setinterval/solution.view/index.html
  166. +2 −2 2-ui/1-document/07-modifying-document/5-why-aaa/solution.md
  167. +1 −1 2-ui/1-document/07-modifying-document/5-why-aaa/task.md
  168. +1 −1 2-ui/1-document/07-modifying-document/6-create-list/task.md
  169. +8 −14 2-ui/1-document/08-styles-and-classes/article.md
  170. +4 −4 2-ui/1-document/09-size-and-scroll/article.md
  171. +6 −0 2-ui/1-document/10-size-and-scroll-window/article.md
  172. +1 −1 2-ui/1-document/11-coordinates/article.md
  173. +1 −1 2-ui/2-events/01-introduction-browser-events/07-carousel/solution.view/index.html
  174. +10 −9 2-ui/2-events/01-introduction-browser-events/article.md
  175. +17 −9 2-ui/2-events/02-bubbling-and-capturing/article.md
  176. +1 −1 2-ui/2-events/03-event-delegation/article.md
  177. +0 −10 2-ui/2-events/04-default-browser-action/3-image-gallery/solution.view/gallery.css
  178. +9 −10 2-ui/2-events/04-default-browser-action/3-image-gallery/source.view/gallery.css
  179. +2 −2 2-ui/2-events/04-default-browser-action/article.md
  180. +5 −1 2-ui/2-events/05-dispatch-events/article.md
  181. +8 −3 2-ui/3-event-details/1-mouse-events-basics/article.md
  182. +1 −1 ...emove-mouseover-mouseout-mouseenter-mouseleave/1-behavior-nested-tooltip/solution.view/index.html
  183. +1 −1 ...usemove-mouseover-mouseout-mouseenter-mouseleave/1-behavior-nested-tooltip/source.view/index.html
  184. +1 −1 ...s/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/2-hoverintent/solution.view/hoverIntent.js
  185. +1 −1 ...ent-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseoverout-fast.view/script.js
  186. +7 −7 2-ui/3-event-details/4-mouse-drag-and-drop/article.md
  187. +70 −36 2-ui/3-event-details/6-pointer-events/article.md
  188. +6 −0 2-ui/3-event-details/6-pointer-events/slider-html.view/index.html
  189. +19 −0 2-ui/3-event-details/6-pointer-events/slider-html.view/style.css
  190. +16 −3 2-ui/3-event-details/6-pointer-events/slider.view/index.html
  191. +1 −0 2-ui/3-event-details/6-pointer-events/slider.view/style.css
  192. +18 −7 2-ui/3-event-details/7-keyboard-events/article.md
  193. +1 −1 2-ui/3-event-details/7-keyboard-events/keyboard-dump.view/index.html
  194. +2 −0 2-ui/3-event-details/7-keyboard-events/keyboard-dump.view/script.js
  195. +27 −28 2-ui/4-forms-controls/1-form-elements/article.md
  196. +1 −1 2-ui/4-forms-controls/2-focus-blur/4-edit-td-click/task.md
  197. +1 −0 2-ui/4-forms-controls/2-focus-blur/5-keyboard-mouse/task.md
  198. +4 −2 2-ui/4-forms-controls/2-focus-blur/article.md
  199. +1 −1 2-ui/4-forms-controls/3-events-change-input/1-deposit-calculator/solution.view/index.html
  200. +1 −1 2-ui/4-forms-controls/3-events-change-input/1-deposit-calculator/task.md
  201. +36 −7 2-ui/4-forms-controls/3-events-change-input/article.md
  202. +25 −5 2-ui/5-loading/01-onload-ondomcontentloaded/article.md
  203. +1 −1 2-ui/5-loading/01-onload-ondomcontentloaded/readystate.view/index.html
  204. +7 −3 2-ui/5-loading/02-script-async-defer/article.md
  205. +148 −38 2-ui/99-ui-misc/02-selection-range/article.md
  206. +1 −0 2-ui/99-ui-misc/02-selection-range/range-hello-1.svg
  207. +50 −0 2-ui/99-ui-misc/03-event-loop/2-micro-macro-queue/solution.md
  208. +21 −0 2-ui/99-ui-misc/03-event-loop/2-micro-macro-queue/task.md
  209. +6 −6 2-ui/99-ui-misc/03-event-loop/article.md
  210. +5 −25 3-frames-and-windows/01-popup-windows/article.md
  211. +8 −1 3-frames-and-windows/03-cross-window-communication/article.md
  212. +1 −1 3-frames-and-windows/06-clickjacking/article.md
  213. +2 −2 4-binary/01-arraybuffer-binary-arrays/01-concat/_js.view/solution.js
  214. +5 −5 4-binary/01-arraybuffer-binary-arrays/article.md
  215. +1 −1 4-binary/02-text-decoder/article.md
  216. +40 −15 4-binary/03-blob/article.md
  217. +3 −3 5-network/01-fetch/article.md
  218. +1 −1 5-network/02-formdata/article.md
  219. +2 −2 5-network/03-fetch-progress/article.md
  220. +20 −11 5-network/04-fetch-abort/article.md
  221. +53 −19 5-network/05-fetch-crossorigin/article.md
  222. +31 −27 5-network/06-fetch-api/article.md
  223. +3 −3 5-network/07-url/article.md
  224. +1 −1 5-network/08-xmlhttprequest/article.md
  225. +1 −1 5-network/09-resume-upload/article.md
  226. +2 −2 5-network/10-long-polling/article.md
  227. +21 −17 5-network/11-websocket/article.md
  228. +1 −0 5-network/11-websocket/demo.view/server.js
  229. +136 −102 6-data-storage/01-cookie/article.md
  230. +1 −1 6-data-storage/01-cookie/cookie.js
  231. +15 −11 6-data-storage/02-localstorage/article.md
  232. +53 −37 6-data-storage/03-indexeddb/article.md
  233. +6 −0 7-animation/1-bezier-curve/article.md
  234. +5 −1 7-animation/1-bezier-curve/demo.svg
  235. +3 −3 7-animation/2-css-animations/1-animate-logo-css/solution.view/index.html
  236. +1 −1 7-animation/2-css-animations/3-animate-circle/solution.view/index.html
  237. +1 −1 7-animation/2-css-animations/3-animate-circle/source.view/index.html
  238. +1 −1 7-animation/2-css-animations/4-animate-circle-callback/solution.view/index.html
  239. +147 −20 7-animation/2-css-animations/article.md
  240. +1 −1 7-animation/3-js-animation/1-animate-ball/solution.view/index.html
  241. +1 −1 7-animation/3-js-animation/2-animate-ball-hops/solution.view/index.html
  242. +5 −5 7-animation/3-js-animation/article.md
  243. +1 −1 7-animation/3-js-animation/bounce-easeinout.view/index.html
  244. +1 −1 7-animation/3-js-animation/bounce-easeout.view/index.html
  245. +1 −1 7-animation/3-js-animation/bounce.view/index.html
  246. +2 −2 7-animation/3-js-animation/text.view/index.html
  247. +2 −2 8-web-components/1-webcomponents-intro/article.md
  248. +2 −2 8-web-components/2-custom-elements/article.md
  249. +1 −1 8-web-components/4-template-element/article.md
  250. +3 −2 8-web-components/5-slots-composition/article.md
  251. +2 −17 8-web-components/6-shadow-dom-style/article.md
  252. +2 −2 9-regular-expressions/03-regexp-unicode/article.md
  253. +1 −1 9-regular-expressions/04-regexp-anchors/article.md
  254. +5 −5 9-regular-expressions/05-regexp-multiline-mode/article.md
  255. +3 −3 9-regular-expressions/07-regexp-escaping/article.md
  256. +4 −0 9-regular-expressions/08-regexp-character-sets-and-ranges/article.md
  257. +1 −1 9-regular-expressions/10-regexp-greedy-and-lazy/article.md
  258. +1 −1 9-regular-expressions/11-regexp-groups/01-test-mac/solution.md
  259. +16 −2 9-regular-expressions/11-regexp-groups/04-parse-expression/solution.md
  260. +3 −3 9-regular-expressions/11-regexp-groups/article.md
  261. +4 −4 9-regular-expressions/13-regexp-alternation/02-find-matching-bbtags/solution.md
  262. +1 −1 9-regular-expressions/13-regexp-alternation/03-match-quoted-string/solution.md
  263. +4 −4 9-regular-expressions/13-regexp-alternation/03-match-quoted-string/task.md
  264. +1 −1 9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md
  265. +10 −1 9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/solution.md
  266. +1 −0 9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/task.md
  267. +6 −2 9-regular-expressions/14-regexp-lookahead-lookbehind/article.md
  268. +2 −2 9-regular-expressions/15-regexp-catastrophic-backtracking/article.md
  269. +11 −4 9-regular-expressions/17-regexp-methods/article.md
  270. +6 −0 BACKERS.md
  271. +37 −57 LICENSE.md
  272. +15 −2 README.md
  273. BIN svgs.zip
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: iliakan
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -21,3 +21,4 @@ sftp-config.json
Thumbs.db


/svgs
67 changes: 67 additions & 0 deletions 1-js/01-getting-started/1-intro/article.md
Original file line number Diff line number Diff line change
@@ -24,26 +24,44 @@

अलग-अलग इंजनों के अलग-अलग "कोडनेम" होते हैं। उदाहरण के लिए:

<<<<<<< HEAD
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- क्रोम (Chrome) और ओपेरा (Opera) में।
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- फ़ायरफ़ॉक्स (Firefox) में।
- ...IE के विभिन्न संस्करणों के लिए "ट्राइडेंट" (Trident) और "चक्र" (Chakra) जैसे अन्य कोडनेम हैं, माइक्रोसॉफ्ट एज के लिए "चक्रकोर" (ChakraCore), "नाइट्रो" (Nitro) और सफारी के लिए "स्क्विरफेलिश" (SquirrelFish) आदि।

उपरोक्त शब्द याद रखने के लिए अच्छे हैं क्योंकि इनका उपयोग इंटरनेट पर डेवलपर लेखों में किया जाता है। हम भी उनका उपयोग करेंगे। उदाहरण के लिए, यदि "एक सुविधा X V8 द्वारा समर्थित है", तो यह शायद क्रोम और ओपेरा में काम करता है।
=======
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- in Chrome, Opera and Edge.
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- in Firefox.
- ...There are other codenames like "Chakra" for IE, "JavaScriptCore", "Nitro" and "SquirrelFish" for Safari, etc.

The terms above are good to remember because they are used in developer articles on the internet. We'll use them too. For instance, if "a feature X is supported by V8", then it probably works in Chrome, Opera and Edge.
>>>>>>> 1dce5b72b16288dad31b7b3febed4f38b7a5cd8a
```smart header="How do engines work?"
इंजन जटिल हैं। लेकिन मूल बातें आसान हैं।
<<<<<<< HEAD
1. इंजन (एम्बेडेड अगर यह एक ब्राउज़र है) स्क्रिप्ट पढ़ता है (parse)।
2. फिर यह मशीन भाषा के लिए स्क्रिप्ट ("संकलन") को परिवर्तित करता है (compile)।
3. और फिर मशीन कोड चलता है, (बहुत तेज)।
=======
1. The engine (embedded if it's a browser) reads ("parses") the script.
2. Then it converts ("compiles") the script to machine code.
3. And then the machine code runs, pretty fast.
>>>>>>> 1dce5b72b16288dad31b7b3febed4f38b7a5cd8a
इंजन प्रक्रिया के प्रत्येक चरण में अनुकूलन (Optimisation) लागू करता है। यह संकलित (complied) स्क्रिप्ट को भी देखता है, इसके माध्यम से बहने वाले डेटा का विश्लेषण करता है, और आगे उस ज्ञान के आधार पर मशीन कोड का आगे अनुकूलन करता है।
```

## एक ब्राउज़र में जावास्क्रिप्ट क्या कर सकता है?

<<<<<<< HEAD
आधुनिक जावास्क्रिप्ट एक "सुरक्षित" प्रोग्रामिंग भाषा है। यह मेमोरी या सीपीयू तक निम्न-स्तरीय पहुंच प्रदान नहीं करता है, क्योंकि यह शुरू में उन ब्राउज़रों के लिए बनाया गया था जिन्हें इसकी आवश्यकता नहीं है।
=======
Modern JavaScript is a "safe" programming language. It does not provide low-level access to memory or the CPU, because it was initially created for browsers which do not require it.
>>>>>>> 1dce5b72b16288dad31b7b3febed4f38b7a5cd8a
जावास्क्रिप्ट की क्षमताएं बहुत हद तक उस वातावरण पर निर्भर करती हैं, जिसमें वह चल रहा है. उदाहरण के लिए, [Node.js](https://wikipedia.org/wiki/Node.js) ऐसे कार्यों का समर्थन करता है जो जावास्क्रिप्ट को मनमाने ढंग से फाइल पढ़ने / लिखने, नेटवर्क अनुरोध करने, आदि की अनुमति देता है।

@@ -59,14 +77,19 @@

## ब्राउज़र जावास्क्रिप्ट क्या नहीं कर सकता?

<<<<<<< HEAD
ब्राउज़र में जावास्क्रिप्ट की क्षमताएं उपयोगकर्ता की सुरक्षा के लिए सीमित हैं। उद्देश्य एक बुरे वेबपृष्ठ को निजी जानकारी तक पहुँचने या उपयोगकर्ता के डेटा को नुकसान पहुँचाने से रोकना है।
=======
JavaScript's abilities in the browser are limited to protect the user's safety. The aim is to prevent an evil webpage from accessing private information or harming the user's data.
>>>>>>> 1dce5b72b16288dad31b7b3febed4f38b7a5cd8a
ऐसे प्रतिबंधों के उदाहरणों में शामिल हैं:

- एक वेबपेज पर जावास्क्रिप्ट हार्ड डिस्क पर मनमानी फाइलों को नहीं पढ़ / लिख सकता है, उन्हें कॉपी या प्रोग्राम निष्पादित नहीं कर सकता है। ऑपरेटिंग सिस्टम फ़ंक्शंस (OS functions) पर इसकी कोई सीधी पहुंच नहीं है।

आधुनिक ब्राउज़र इसे फ़ाइलों के साथ काम करने की अनुमति देता है, लेकिन पहुंच सीमित है और केवल तभी प्रदान की जाती है जब उपयोगकर्ता कुछ कार्य करता है, जैसे किसी फ़ाइल को ब्राउज़र विंडो में "ड्रॉप करना" या input ('इनपुट') टैग के माध्यम से चुनना।

<<<<<<< HEAD
कैमरा / माइक्रोफोन और अन्य उपकरणों के साथ बातचीत करने के तरीके हैं, लेकिन उन्हें उपयोगकर्ता की स्पष्ट अनुमति की आवश्यकता होती है। इसलिए एक जावास्क्रिप्ट-सक्षम पेज वेब-कैमरा को चुपके से सक्षम नहीं कर सकता है, परिवेश का निरीक्षण नहीं कर सकता है और [एनएसए](https://en.wikipedia.org/wiki/National_Security_Agency) को जानकारी नहीं भेज सकता है।
- विभिन्न टैब / विंडो आमतौर पर एक-दूसरे के बारे में नहीं जानते हैं। कभी-कभी वे जानते हैं, उदाहरण के लिए जब एक window दूसरे को खोलने के लिए जावास्क्रिप्ट का उपयोग करती है। लेकिन इस मामले में भी, एक पृष्ठ से जावास्क्रिप्ट दूसरे तक नहीं पहुंच सकता है यदि वे विभिन्न साइटों (एक अलग डोमेन, प्रोटोकॉल या पोर्ट से) से आते हैं।

@@ -78,34 +101,62 @@
![](limitations.svg)

यदि ब्राउज़र के बाहर जावास्क्रिप्ट का उपयोग किया जाता है तो ऐसी सीमाएँ मौजूद नहीं हैं, उदाहरण के लिए किसी सर्वर पर। आधुनिक ब्राउज़र भी प्लगइन / एक्सटेंशन की अनुमति देते हैं जो विस्तारित अनुमतियों के लिए पूछ सकते हैं।
=======
There are ways to interact with the camera/microphone and other devices, but they require a user's explicit permission. So a JavaScript-enabled page may not sneakily enable a web-camera, observe the surroundings and send the information to the [NSA](https://en.wikipedia.org/wiki/National_Security_Agency).
- Different tabs/windows generally do not know about each other. Sometimes they do, for example when one window uses JavaScript to open the other one. But even in this case, JavaScript from one page may not access the other page if they come from different sites (from a different domain, protocol or port).

This is called the "Same Origin Policy". To work around that, *both pages* must agree for data exchange and must contain special JavaScript code that handles it. We'll cover that in the tutorial.

This limitation is, again, for the user's safety. A page from `http://anysite.com` which a user has opened must not be able to access another browser tab with the URL `http://gmail.com`, for example, and steal information from there.
- JavaScript can easily communicate over the net to the server where the current page came from. But its ability to receive data from other sites/domains is crippled. Though possible, it requires explicit agreement (expressed in HTTP headers) from the remote side. Once again, that's a safety limitation.

![](limitations.svg)

Such limitations do not exist if JavaScript is used outside of the browser, for example on a server. Modern browsers also allow plugins/extensions which may ask for extended permissions.
>>>>>>> 1dce5b72b16288dad31b7b3febed4f38b7a5cd8a
## क्या जावास्क्रिप्ट को अद्वितीय बनाता है?

जावास्क्रिप्ट के बारे में कम से कम * तीन * महान बातें हैं:

```compare
<<<<<<< HEAD
+ HTML / CSS के साथ पूर्ण एकीकरण (integration)।
+ साधारण चीजें सरल तरीके से की जाती हैं.
+ सभी प्रमुख ब्राउज़रों द्वारा समर्थन और डिफ़ॉल्ट रूप से सक्षम.
=======
+ Full integration with HTML/CSS.
+ Simple things are done simply.
+ Supported by all major browsers and enabled by default.
>>>>>>> 1dce5b72b16288dad31b7b3febed4f38b7a5cd8a
```
जावास्क्रिप्ट इकलौता ब्राउज़र तकनीक है जो इन तीन चीजों को जोड़ती है।

यही जावास्क्रिप्ट को अद्वितीय बनाता है। यही कारण है कि यह ब्राउज़र इंटरफेस बनाने के लिए सबसे व्यापक उपकरण है।

<<<<<<< HEAD
आजकल, जावास्क्रिप्ट का उपयोग सर्वर, मोबाइल एप्लिकेशन आदि बनाने के लिए भी किया जाता है।
=======
That said, JavaScript can be used to create servers, mobile applications, etc.
>>>>>>> 1dce5b72b16288dad31b7b3febed4f38b7a5cd8a
## जावास्क्रिप्ट के ऊपर निर्मित भाषाएँ

जावास्क्रिप्ट का सिंटैक्स सभी की आवश्यकताओं के अनुरूप नहीं है। अलग-अलग लोग अलग-अलग सुविधाएँ चाहते हैं।

इसकी उम्मीद की जानी चाहिए, क्योंकि परियोजनाएं और आवश्यकताएं सभी के लिए अलग-अलग हैं।

<<<<<<< HEAD
इसलिए हाल ही में नई भाषाओं का ढेर दिखाई दिया जा रहा है, जो ब्राउज़र में चलने से पहले जावास्क्रिप्ट में *रूपांतरित* (transpiled) होते हैं।
=======
So, recently a plethora of new languages appeared, which are *transpiled* (converted) to JavaScript before they run in the browser.
>>>>>>> 1dce5b72b16288dad31b7b3febed4f38b7a5cd8a
आधुनिक उपकरण परिवर्तनों को बहुत तेज और पारदर्शी बनाते हैं, वास्तव में डेवलपर्स को किसी अन्य भाषा में कोड करने की अनुमति देता है और उसे अंदर से परिवर्तित करता है।

ऐसी भाषाओं के उदाहरण:

<<<<<<< HEAD
- [CoffeeScript](http://coffeescript.org/) यह जावास्क्रिप्ट के लिए "सिंटैक्टिक शुगर" है। यह छोटे वाक्यविन्यास का परिचय देता है, जिससे हमें स्पष्ट और अधिक सटीक कोड लिखने की अनुमति मिलती है। आमतौर पर, Ruby (रूबी) डेवलपर इसे पसंद करते हैं।
- [TypeScript](http://www.typescriptlang.org/) यह जटिल प्रणालियों के विकास और समर्थन को आसान बनाने के लिए "सख्त डेटा टाइपिंग" को जोड़ने पर केंद्रित है। यह Microsoft द्वारा विकसित किया गया है।
- [Flow](http://flow.org/) यह डेटा टाइपिंग भी जोड़ता है, लेकिन एक अलग तरीके से। Facebook द्वारा विकसित।
@@ -114,8 +165,24 @@
- [Brython](https://brython.info/) यह जावास्क्रिप्ट के लिए एक पायथन ट्रांसपिलर है जो जावास्क्रिप्ट के बिना शुद्ध पायथन में एप्लिकेशन लिखने में सक्षम बनाता है।

## सारांश
=======
- [CoffeeScript](https://coffeescript.org/) is "syntactic sugar" for JavaScript. It introduces shorter syntax, allowing us to write clearer and more precise code. Usually, Ruby devs like it.
- [TypeScript](https://www.typescriptlang.org/) is concentrated on adding "strict data typing" to simplify the development and support of complex systems. It is developed by Microsoft.
- [Flow](https://flow.org/) also adds data typing, but in a different way. Developed by Facebook.
- [Dart](https://www.dartlang.org/) is a standalone language that has its own engine that runs in non-browser environments (like mobile apps), but also can be transpiled to JavaScript. Developed by Google.
- [Brython](https://brython.info/) is a Python transpiler to JavaScript that enables the writing of applications in pure Python without JavaScript.
- [Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) is a modern, concise and safe programming language that can target the browser or Node.

There are more. Of course, even if we use one of these transpiled languages, we should also know JavaScript to really understand what we're doing.
>>>>>>> 1dce5b72b16288dad31b7b3febed4f38b7a5cd8a
- जावास्क्रिप्ट को शुरुआत में केवल ब्राउज़र-भाषा के रूप में बनाया गया था, लेकिन अब इसे कई अन्य वातावरणों में भी उपयोग किया जाता है।
- आज, जावास्क्रिप्ट HTML / CSS के साथ पूर्ण एकीकरण के साथ सबसे व्यापक रूप से अपनाया जाने वाला एक अद्वितीय ब्राउज़र-भाषा है।
- कई भाषाएं हैं जो जावास्क्रिप्ट में रूपांतरित ("transpiled", किसी अन्य भाषा में अनुवाद करने की प्रक्रिया) होती हैं और कुछ विशेषताएं प्रदान करती हैं।जावास्क्रिप्ट पर महारत हासिल करने के बाद, कम से कम संक्षेप में उन पर एक नज़र डालने की सलाह दी जाती है।

<<<<<<< HEAD
=======
- JavaScript was initially created as a browser-only language, but it is now used in many other environments as well.
- Today, JavaScript has a unique position as the most widely-adopted browser language, fully integrated with HTML/CSS.
- There are many languages that get "transpiled" to JavaScript and provide certain features. It is recommended to take a look at them, at least briefly, after mastering JavaScript.
>>>>>>> 1dce5b72b16288dad31b7b3febed4f38b7a5cd8a
Loading