index.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. // обязательная часть 1
  2. let f = function test () { // Читала, что сейчас используют NFE. arguments.callee - используют только когда создают анонимную функцию напрямую через конструктор Function
  3. console.log(test)
  4. for (let arg of arguments) {
  5. console.log(arg)
  6. }
  7. };
  8. f(10, false, 'google')
  9. // Дополнительно 2
  10. function userInfo() {
  11. if (this.registered === true) {
  12. console.log ('Дата регистрации:' + this.date);
  13. } else {
  14. console.log('Незарегистрированный пользователь:' + this.name);
  15. }
  16. };
  17. let user = {
  18. registered: true,
  19. date: '10.09.20019',
  20. name: 'Alex',
  21. getInfo: userInfo
  22. };
  23. let userSecond = {
  24. registered: false,
  25. date: ' ',
  26. name: 'Victor',
  27. getInfo: userInfo
  28. };
  29. user.getInfo();
  30. userSecond.getInfo();
  31. // Дополнительно 3
  32. let users = {
  33. 14587: {
  34. name: "Ivan",
  35. email: "ivan78@gmail.com"
  36. },
  37. 28419: {
  38. name: "Georg",
  39. email: "georg.klep@gmail.com"
  40. },
  41. 41457: {
  42. name: "Stephan",
  43. email: "stephan.borg@gmail.com"
  44. }
  45. }
  46. let posts = {
  47. 7891451: {
  48. author: 14587,
  49. text: "Imagine we can encapsulate these secondary responsibilities in functions"
  50. },
  51. 7891452: {
  52. author: 28419,
  53. text: `В конструкторе ключевое слово super используется как функция, вызывающая родительский конструктор.
  54. Её необходимо вызвать до первого обращения к ключевому слову this в теле конструктора.
  55. Ключевое слово super также может быть использовано для вызова функций родительского объекта`
  56. },
  57. 7891453: {
  58. author: 28419,
  59. text: `DOM не обрабатывает или не вынуждает проверять пространство имен как таковое.
  60. Префикс пространства имен, когда он связан с конкретным узлом, не может быть изменен`
  61. },
  62. 7891454: {
  63. author: 14587,
  64. text: "Ключевое слово super используется для вызова функций, принадлежащих родителю объекта"
  65. }
  66. }
  67. let comments = {
  68. 91078454: {
  69. postId: 7891451,
  70. author: 28419,
  71. text: `The static String.fromCharCode() method returns a string created
  72. from the specified sequence of UTF-16 code units`
  73. },
  74. 91078455: {
  75. postId: 7891451,
  76. author: 41457,
  77. text: `HTML элемент <template> — это механизм для отложенного рендера клиентского контента,
  78. который не отображается во время загрузки, но может быть инициализирован при помощи JavaScript`
  79. },
  80. 91078457: {
  81. postId: 7891452,
  82. author: 41457,
  83. text: "Глобальный объект String является конструктором строк, или, последовательностей символов"
  84. },
  85. 91078458: {
  86. postId: 7891452,
  87. author: 14587,
  88. text: `The Element.namespaceURI read-only property returns the namespace URI of the element,
  89. or null if the element is not in a namespace`
  90. }
  91. }
  92. function getPostComments ( postId ) {
  93. let res = []
  94. for (let commentsId in comments) {
  95. if(comments[commentsId].postId === postId) {
  96. let userId = comments[commentsId].author
  97. let userName = users[userId].name
  98. let commentBody = comments[commentsId].text
  99. let obj = {
  100. author: userName,
  101. text: commentBody
  102. };
  103. res.push(obj)
  104. }
  105. }
  106. return res;
  107. }
  108. console.log ( getPostComments ( 7891451 ) )