Компьютерный блок, внутри которого находятся функциональные компоненты, обеспечивающие его работу 9 букв

Обновлено: 02.07.2024

Сертификаты могут помочь специалистам по безопасности подтвердить свои базовые знания в области информационной безопасности. Рассмотрите возможность добавления этих лучших облачных средств безопасности .

Изучите три основные проблемы безопасности при работе с несколькими арендаторами и способы их устранения, в том числе недостаточную видимость и превышение привилегий.

Если ваша компания использует поставщика облачных баз данных, очень важно обеспечить максимальную безопасность. Ознакомьтесь с функциями безопасности .

Cradlepoint и Extreme Networks объединят маршрутизаторы 5G первой компании с сетевой структурой второй для создания беспроводной глобальной сети 5G.

Израильский стартап OneLayer запустился незаметно с начальным финансированием в размере 8,2 млн долларов США и программной платформой для защиты Интернета вещей.

Российско-украинская война, которая затрагивает все, от инфляции до доступности чипов, оставила половину корпоративных технических лидеров.

ИТ-руководители начали год с ветерком в спину, опираясь на инвестиции, сделанные во время пандемии, и вновь сосредоточившись на .

Определения метавселенной различаются, как и прогнозы относительно того, когда она появится. Но умные ИТ-директора должны ознакомиться с .

Компании, привлекающие украинских программистов, работают над переводом сотрудников, желающих переехать. Технологические компании в долгосрочной перспективе могут .

ИТ-администраторам, рассматривающим возможность перехода на Windows 11, следует узнать, как функции версии Enterprise могут помочь их .

Последняя сборка для разработчиков Windows 11 позволяет открывать несколько папок в приложении для управления файлами. Предполагается, что эта функция .

Администраторам настольных компьютеров следует обратить внимание на собственные функции безопасности и архитектуру Windows 10, чтобы установить базовый уровень настольных компьютеров.

Чтобы добиться высокой доступности и отказоустойчивости в AWS, ИТ-администраторы должны сначала понять различия между двумя моделями.

Amazon ECS и EKS похожи, но их различий достаточно, чтобы выделить их для пользователей AWS. Узнайте, что лучше всего подходит для вашего .

Новые дополнения к системам хранения, такие как гибкие блочные тома и высокая доступность для ZFS, делают облачную платформу Oracle более конкурентоспособной.

Новое пространство будет направлено на создание 130 рабочих мест и подключение к цифровому кадровому резерву Уэст-Мидлендса

Эксперты по цифровому здравоохранению обсуждают роль данных в координации мер реагирования Национальной службы здравоохранения на пандемию, а также способы управления конфиденциальностью и .

Новые инвестиции увеличивают недавний раунд финансирования сетевого провайдера до более чем 1,4 млрд фунтов стерлингов, что позволяет участвовать в проекте Gigabit.

Несмотря на то, что были приложены все усилия для соблюдения правил стиля цитирования, могут быть некоторые расхождения. Если у вас есть какие-либо вопросы, обратитесь к соответствующему руководству по стилю или другим источникам.

Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.

Разностная машина

цифровой компьютер, любое из класса устройств, способных решать задачи путем обработки информации в дискретной форме. Он работает с данными, включая величины, буквы и символы, которые выражены в двоичном коде, т. е. с использованием только двух цифр 0 и 1. Считая, сравнивая и манипулируя этими цифрами или их комбинациями в соответствии с набором инструкций, хранимых в своей памяти цифровая вычислительная машина может выполнять такие задачи, как управление производственными процессами и регулирование работы машин; анализировать и систематизировать огромные объемы бизнес-данных; и моделировать поведение динамических систем (например, глобальные погодные условия и химические реакции) в научных исследованиях.

Далее следует краткое описание цифровых компьютеров. Полное описание см. в см. информатике: основные компьютерные компоненты.

компьютерный чип. компьютер. Рука, держащая компьютерный чип. Центральный процессор (ЦП). история и общество, наука и техника, микрочип, материнская плата микропроцессора, компьютерная печатная плата

Компьютеры размещают веб-сайты, состоящие из HTML, и отправляют текстовые сообщения так же просто, как. РЖУ НЕ МОГУ. Взломайте этот тест, и пусть какая-нибудь технология подсчитает ваш результат и раскроет вам его содержание.

Функциональные элементы

Типичная цифровая компьютерная система имеет четыре основных функциональных элемента: (1) оборудование ввода-вывода, (2) основную память, (3) блок управления и (4) арифметико-логическое устройство. Любое из ряда устройств используется для ввода данных и программных инструкций в компьютер и для получения доступа к результатам операции обработки. Общие устройства ввода включают клавиатуры и оптические сканеры; устройства вывода включают принтеры и мониторы. Информация, полученная компьютером от своего блока ввода, сохраняется в основной памяти или, если не для непосредственного использования, во вспомогательном запоминающем устройстве.Блок управления выбирает и вызывает инструкции из памяти в соответствующей последовательности и передает соответствующие команды соответствующему блоку. Он также синхронизирует различные рабочие скорости устройств ввода и вывода со скоростью арифметико-логического устройства (ALU), чтобы обеспечить правильное перемещение данных по всей компьютерной системе. ALU выполняет арифметические и логические алгоритмы, выбранные для обработки входящих данных, с чрезвычайно высокой скоростью — во многих случаях за наносекунды (миллиардные доли секунды). Основная память, блок управления и АЛУ вместе составляют центральный процессор (ЦП) большинства цифровых компьютерных систем, а устройства ввода-вывода и вспомогательные запоминающие устройства составляют периферийное оборудование.

Разработка цифрового компьютера

Блез Паскаль из Франции и Готфрид Вильгельм Лейбниц из Германии изобрели механические цифровые вычислительные машины в 17 веке. Однако обычно считается, что английский изобретатель Чарльз Бэббидж создал первый автоматический цифровой компьютер. В 1830-х годах Бэббидж разработал свою так называемую аналитическую машину, механическое устройство, предназначенное для объединения основных арифметических операций с решениями, основанными на собственных вычислениях. Планы Бэббиджа воплотили в себе большинство фундаментальных элементов современного цифрового компьютера. Например, они призывали к последовательному управлению, т. е. программному управлению, которое включало ветвление, циклирование, а также арифметические и запоминающие устройства с автоматической распечаткой. Однако устройство Бэббиджа так и не было завершено и было забыто до тех пор, пока его труды не были заново открыты более века спустя.

Огромное значение в эволюции цифрового компьютера имели работы английского математика и логика Джорджа Буля. В различных эссе, написанных в середине 1800-х годов, Буль обсуждал аналогию между символами алгебры и символами логики, используемыми для представления логических форм и силлогизмов. Его формализм, работающий только с 0 и 1, стал основой того, что сейчас называется булевой алгеброй, на которой основаны теория и процедуры компьютерного переключения.

Джону В. Атанасову, американскому математику и физику, приписывают создание первого электронного цифрового компьютера, который он построил с 1939 по 1942 год с помощью своего аспиранта Клиффорда Э. Берри. Конрад Цузе, немецкий инженер, фактически изолированный от других разработок, в 1941 году завершил строительство первой действующей вычислительной машины с программным управлением (Z3). В 1944 году Ховард Эйкен и группа инженеров корпорации International Business Machines (IBM) завершили работу над Harvard Mark I, машиной, операции обработки данных которой управлялись в основном электрическими реле (коммутационными устройствами).

Клиффорд Э. Берри и компьютер Атанасова-Берри

Клиффорд Э. Берри и компьютер Атанасова-Берри, или ABC, c. 1942 г. ABC, возможно, был первым электронным цифровым компьютером.

С момента разработки Harvard Mark I цифровой компьютер развивался быстрыми темпами. Последовательность достижений в компьютерном оборудовании, главным образом в области логических схем, часто делится на поколения, при этом каждое поколение включает группу машин, использующих общую технологию.

В 1946 году Дж. Преспер Эккерт и Джон У. Мочли из Пенсильванского университета сконструировали ENIAC (аббревиатура от eэлектронный nмерический i). интегратор ии cкомпьютер), цифровая машина и первый электронный компьютер общего назначения. Его вычислительные возможности были заимствованы у машины Атанасова; оба компьютера включали электронные лампы вместо реле в качестве активных логических элементов, что привело к значительному увеличению скорости работы. Концепция компьютера с хранимой программой была представлена ​​в середине 1940-х годов, а идея хранения кодов инструкций, а также данных в электрически изменяемой памяти была реализована в EDVAC (electronic, d создать vпеременный аавтоматический cкомпьютер).

Manchester Mark I

Второе поколение компьютеров появилось в конце 1950-х годов, когда в продажу поступили цифровые машины, использующие транзисторы. Хотя этот тип полупроводникового устройства был изобретен в 1948 году, потребовалось более 10 лет опытно-конструкторских работ, чтобы сделать его жизнеспособной альтернативой электронной лампе. Небольшой размер транзистора, его большая надежность и относительно низкое энергопотребление значительно превосходили лампу.Его использование в компьютерных схемах позволило производить цифровые системы, которые были значительно эффективнее, меньше и быстрее, чем их предки первого поколения.

первый транзистор

Транзистор был изобретен в 1947 году в Bell Laboratories Джоном Бардином, Уолтером Х. Браттейном и Уильямом Б. Шокли.

В конце 1960-х и 1970-х годах компьютерное оборудование стало еще более значительным. Первым было изготовление интегральной схемы, твердотельного устройства, содержащего сотни транзисторов, диодов и резисторов на крошечном кремниевом чипе. Эта микросхема сделала возможным производство мейнфреймов (крупномасштабных) компьютеров с более высокими рабочими скоростями, мощностью и надежностью при значительно меньших затратах. Другим типом компьютеров третьего поколения, которые были разработаны в результате микроэлектроники, были миникомпьютеры, машина значительно меньшего размера, чем стандартный мэйнфрейм, но достаточно мощная, чтобы управлять приборами целой научной лаборатории.

интегральная схема

Развитие крупномасштабной интеграции (БИС) позволило производителям оборудования разместить тысячи транзисторов и других связанных компонентов на одном кремниевом чипе размером с ноготь ребенка. Такая микросхема дала два устройства, которые произвели революцию в компьютерной технике. Первым из них был микропроцессор, представляющий собой интегральную схему, содержащую все арифметические, логические и управляющие схемы центрального процессора. Его производство привело к разработке микрокомпьютеров, систем размером не больше портативных телевизоров, но со значительной вычислительной мощностью. Другим важным устройством, появившимся из схем БИС, была полупроводниковая память. Это компактное запоминающее устройство, состоящее всего из нескольких микросхем, хорошо подходит для использования в миникомпьютерах и микрокомпьютерах. Кроме того, он находит применение во все большем числе мейнфреймов, особенно в тех, которые предназначены для высокоскоростных приложений, из-за его высокой скорости доступа и большой емкости памяти. Такая компактная электроника привела в конце 1970-х годов к разработке персонального компьютера, цифрового компьютера, достаточно небольшого и недорогого, чтобы его могли использовать обычные потребители.

микропроцессор

К началу 1980-х интегральные схемы продвинулись до очень крупномасштабной интеграции (СБИС). Этот дизайн и технология производства значительно увеличили плотность схем микропроцессора, памяти и вспомогательных микросхем, т. Е. Те, которые служат для сопряжения микропроцессоров с устройствами ввода-вывода. К 1990-м годам некоторые схемы СБИС содержали более 3 миллионов транзисторов на кремниевой микросхеме площадью менее 0,3 квадратных дюйма (2 квадратных см).

Цифровые компьютеры 1980-х и 90-х годов, использующие технологии БИС и СБИС, часто называют системами четвертого поколения. Многие микрокомпьютеры, произведенные в 1980-х годах, были оснащены одним чипом, на котором были интегрированы схемы процессора, памяти и функций интерфейса. (См. также суперкомпьютер.)

Использование персональных компьютеров выросло в 1980-х и 90-х годах. Распространение Всемирной паутины в 1990-х годах привело миллионы пользователей к Интернету, всемирной компьютерной сети, и к 2019 году около 4,5 миллиардов человек, более половины населения мира, имели доступ к Интернету. Компьютеры становились меньше и быстрее, и в начале 21 века они были широко распространены в смартфонах, а затем и в планшетных компьютерах.

iPhone 4

Редакторы Британской энциклопедии Эта статья была недавно отредактирована и обновлена ​​Эриком Грегерсеном.

Компьютер: компьютер представляет собой комбинацию аппаратных и программных ресурсов, которые интегрируются вместе и предоставляют пользователю различные функции. Аппаратное обеспечение — это физические компоненты компьютера, такие как процессор, устройства памяти, монитор, клавиатура и т. д., а программное обеспечение — это набор программ или инструкций, которые требуются аппаратным ресурсам для правильной работы.
Есть несколько основных компонентов, которые помогают рабочему циклу компьютера, то есть циклу ввода-процесса-вывода, и они называются функциональными компонентами компьютера. Он нуждается в определенных входных данных, обрабатывает эти входные данные и производит желаемый результат.Блок ввода принимает ввод, центральный процессор выполняет обработку данных, а блок вывода производит вывод. Блок памяти содержит данные и инструкции во время обработки.

Цифровой компьютер. Цифровой компьютер можно определить как программируемую машину, которая считывает двоичные данные, переданные в виде инструкций, обрабатывает эти двоичные данные и отображает рассчитанный цифровой вывод. Следовательно, цифровые компьютеры — это те, которые работают с цифровыми данными.

Детали функциональных компонентов цифрового компьютера


  • Устройство ввода: устройство ввода состоит из устройств ввода, подключенных к компьютеру. Эти устройства принимают входные данные и преобразуют их в двоичный язык, понятный компьютеру. Некоторые из распространенных устройств ввода: клавиатура, мышь, джойстик, сканер и т. д.
  • Центральный процессор (ЦП): как только информация вводится в компьютер устройством ввода, процессор обрабатывает ее. Центральный процессор называют мозгом компьютера, потому что он является центром управления компьютером. Сначала он извлекает инструкции из памяти, а затем интерпретирует их, чтобы знать, что нужно делать. При необходимости данные извлекаются из памяти или устройства ввода. После этого ЦП выполняет или выполняет необходимые вычисления, а затем либо сохраняет вывод, либо отображает его на устройстве вывода. ЦП состоит из трех основных компонентов, которые отвечают за различные функции: арифметико-логическое устройство (ALU), устройство управления (CU) и регистры памяти.
  • Арифметико-логическое устройство (АЛУ). Как следует из названия, АЛУ выполняет математические вычисления и принимает логические решения. Арифметические вычисления включают сложение, вычитание, умножение и деление. Логические решения включают сравнение двух элементов данных, чтобы определить, какой из них больше, меньше или равен.
  • Блок управления: Блок управления координирует и контролирует поток данных, входящий и исходящий из ЦП, а также контролирует все операции АЛУ, регистров памяти, а также устройств ввода/вывода. Он также отвечает за выполнение всех инструкций, хранящихся в программе. Он декодирует полученную команду, интерпретирует ее и отправляет управляющие сигналы на устройства ввода/вывода до тех пор, пока необходимая операция не будет выполнена должным образом АЛУ и памятью.
  • Регистры памяти: регистр — это временная единица памяти в ЦП. Они используются для хранения данных, которые непосредственно используются процессором. Регистры могут быть разного размера (16-битные, 32-битные, 64-битные и т. д.), и каждый регистр внутри ЦП выполняет определенную функцию, такую ​​как хранение данных, сохранение инструкции, сохранение адреса места в памяти и т. д. Пользовательские регистры могут использоваться программистом на ассемблере для хранения операндов, промежуточных результатов и т. д. Аккумулятор (ACC) — это главный регистр в АЛУ, который содержит один из операндов операции, которая должна быть выполнена в АЛУ. : Память, подключенная к ЦП, используется для хранения данных и инструкций и называется внутренней памятью. Внутренняя память разделена на множество ячеек памяти, каждая из которых может хранить данные или инструкции. Каждая ячейка памяти имеет одинаковый размер и адрес. С помощью адреса компьютер может легко прочитать любую ячейку памяти без необходимости поиска во всей памяти. при выполнении программы ее данные копируются во внутреннюю память и сохраняются в памяти до конца выполнения. Внутренняя память также называется основной памятью или основной памятью. Эта память также называется оперативной памятью, то есть оперативной памятью. Время доступа к данным не зависит от их расположения в памяти, поэтому эту память также называют оперативной памятью (ОЗУ). Прочтите это для разных типов оперативной памяти
  • Блок вывода: Блок вывода состоит из устройств вывода, подключенных к компьютеру. Он преобразует двоичные данные, поступающие от ЦП, в понятную человеку форму. Общие устройства вывода: монитор, принтер, плоттер и т. д.

Взаимосвязь между функциональными компонентами

Компьютер состоит из блока ввода, который принимает ввод, процессора, который обрабатывает ввод, и блока вывода, который производит вывод. Все эти устройства взаимодействуют друг с другом через общую шину. Шина — это путь передачи, состоящий из набора проводов, по которым данные или информация в виде электрических сигналов передаются от одного компонента компьютера к другому. Шина может быть трех типов: шина адреса, шина данных и шина управления.

На следующем рисунке показано подключение различных функциональных компонентов:

Подключение функциональных компонентов

Адресная шина передает адресное расположение данных или инструкций.По шине данных передаются данные от одного компонента к другому, а по шине управления передаются управляющие сигналы. Системная шина — это общий канал связи, по которому передаются сигналы к ЦП, основной памяти и устройствам ввода/вывода и обратно. Устройства ввода/вывода взаимодействуют с системной шиной через схему контроллера, которая помогает управлять различными устройствами ввода/вывода, подключенными к компьютеру.

Другой важной концепцией кодирования являются функции, которые позволяют хранить фрагмент кода, выполняющий одну задачу, внутри определенного блока, а затем вызывать этот код всякий раз, когда он вам нужен, с помощью одной короткой команды, вместо того, чтобы вводить один и тот же код несколько раз. В этой статье мы рассмотрим основные концепции функций, такие как базовый синтаксис, способы их вызова и определения, область действия и параметры.

Требования: Базовая компьютерная грамотность, базовое понимание HTML и CSS, первые шаги в JavaScript.
Цель: Понять основные концепции функций JavaScript.

Где найти функции?

В JavaScript вы найдете функции везде. На самом деле, мы использовали функции на протяжении всего курса; мы просто не говорили о них очень много. Однако сейчас самое время поговорить о функциях в явном виде и по-настоящему изучить их синтаксис.

Практически каждый раз, когда вы используете структуру JavaScript, содержащую пару круглых скобок — () — и вы не используете стандартную встроенную языковую структуру, такую ​​как цикл for, while или do. цикл while или если. else, вы используете функцию.

Встроенные функции браузера

В этом курсе мы часто использовали функции, встроенные в браузер. Каждый раз, когда мы манипулировали текстовой строкой, например:

Или каждый раз, когда мы манипулировали массивом:

Или каждый раз, когда мы генерируем случайное число:

<р>. мы использовали функцию!

Примечание. Не стесняйтесь вводить эти строки в консоль JavaScript вашего браузера, чтобы при необходимости еще раз ознакомиться с их функциями.

В языке JavaScript есть множество встроенных функций, которые позволяют вам делать полезные вещи без необходимости писать весь этот код самостоятельно. На самом деле, часть кода, который вы вызываете при вызове встроенной функции браузера (причудливое слово для запуска или выполнения), не может быть написана на JavaScript — многие из этих функций вызывают части фонового кода браузера, которые написан в основном на низкоуровневых системных языках, таких как C++, а не на веб-языках, таких как JavaScript.

Имейте в виду, что некоторые встроенные функции браузера не являются частью основного языка JavaScript. Некоторые из них определены как часть API-интерфейсов браузера, которые строятся на основе языка по умолчанию для обеспечения еще большей функциональности (см. этот ранний раздел). нашего курса для получения дополнительных описаний). Мы рассмотрим использование API браузера более подробно в следующем модуле.

Функции и методы

Функции, являющиеся частью объектов, называются методами. Вам пока не нужно изучать внутреннюю работу структурированных объектов JavaScript — вы можете подождать до следующего модуля, в котором вы узнаете все о внутренней работе объектов и о том, как создавать свои собственные. А пока мы просто хотели прояснить возможную путаницу между методом и функцией — вы, вероятно, встретите оба термина, просматривая доступные связанные ресурсы в Интернете.

Встроенный код, который мы использовали до сих пор, представлен в обеих формах: функциях и методах. Полный список встроенных функций, а также встроенных объектов и соответствующих им методов можно посмотреть здесь.

Вы также уже видели в курсе множество пользовательских функций — функций, определенных в вашем коде, а не в браузере. Каждый раз, когда вы видели пользовательское имя со скобками сразу после него, вы использовали пользовательскую функцию. В нашем примере random-canvas-circles.html (см. также полный исходный код) из нашей статьи о циклах мы включили пользовательскую функцию draw(), которая выглядела следующим образом:

Эта функция рисует 100 случайных кругов внутри элемента. Каждый раз, когда мы хотим это сделать, мы можем просто вызвать функцию следующим образом:

вместо того, чтобы писать весь этот код каждый раз, когда мы хотим его повторить. И функции могут содержать любой код, который вам нравится — вы даже можете вызывать другие функции из функций. Вышеупомянутая функция, например, трижды вызывает функцию random(), что определяется следующим кодом:

Эта функция понадобилась нам, потому что встроенная в браузер функция Math.random() генерирует только случайное десятичное число от 0 до 1. Нам нужно случайное целое число от 0 до указанного числа.

Вызов функций

Возможно, вы уже поняли это, но на всякий случай. чтобы на самом деле использовать функцию после того, как она была определена, вы должны запустить — или вызвать — ее.Это делается путем включения в код имени функции, за которым следуют круглые скобки.

Примечание. Эта форма создания функции также называется объявлением функции. Он всегда поднимается, поэтому вы можете вызывать функцию над определением функции, и она будет работать нормально.

Параметры функции

Некоторые функции требуют указания параметров при их вызове — это значения, которые должны быть заключены в круглые скобки функции, необходимые для правильной работы.

Примечание. Параметры иногда называют аргументами, свойствами или даже атрибутами.

Например, встроенная в браузер функция Math.random() не требует никаких параметров. При вызове он всегда возвращает случайное число от 0 до 1:

Однако для встроенной в браузер функции замены строки требуется два параметра — подстрока, которую нужно найти в основной строке, и подстрока, на которую эта строка заменяется:

Примечание. Если вам нужно указать несколько параметров, они разделяются запятыми.

Необязательные параметры

Иногда параметры являются необязательными — их не нужно указывать. Если вы этого не сделаете, функция обычно примет какое-то поведение по умолчанию. Например, параметр функции join() для массива является необязательным:

Если для указания символа соединения/разделения не указан параметр, по умолчанию используется запятая.

Параметры по умолчанию

Если вы пишете функцию и хотите поддерживать необязательные параметры, вы можете указать значения по умолчанию, добавив = после имени параметра, за которым следует значение по умолчанию:

Анонимные функции и стрелочные функции

Пока что мы только что создали такую ​​функцию:

Но вы также можете создать функцию без имени:

Это называется анонимной функцией, поскольку у нее нет имени. Вы часто будете видеть анонимные функции, когда функция ожидает получить другую функцию в качестве параметра. В этом случае параметр функции часто передается как анонимная функция.

Примечание. Эта форма создания функции также известна как выражение функции. В отличие от объявления функции, функциональные выражения не поднимаются.

Пример анонимной функции

Например, предположим, что вы хотите запускать некоторый код, когда пользователь вводит текст в текстовое поле. Для этого вы можете вызвать функцию addEventListener() текстового поля. Эта функция ожидает, что вы передадите ей (как минимум) два параметра:

  • название события для прослушивания, в данном случае "keydown"
  • функция, запускаемая при возникновении события.

Когда пользователь нажимает клавишу, браузер вызывает предоставленную вами функцию и передает ей параметр, содержащий информацию об этом событии, включая конкретную клавишу, которую нажал пользователь:

Вместо определения отдельной функции logKey() вы можете передать анонимную функцию в addEventListener():

Функции со стрелками

Если вы передаете анонимную функцию, подобную этой, вы можете использовать альтернативную форму, называемую функцией стрелки. Вместо function(event) вы пишете (event) => :

Если у функции есть только одна строка в фигурных скобках, вы опускаете фигурные скобки:

Если функция принимает только один параметр, вы также можете опустить скобки вокруг параметра:

Наконец, если ваша функция должна возвращать значение и содержит только одну строку, вы также можете опустить оператор return. В следующем примере мы используем метод map() массива, чтобы удвоить каждое значение в исходном массиве:

Метод map() берет каждый элемент массива по очереди и передает его в заданную функцию. Затем он берет значение, возвращенное этой функцией, и добавляет его в новый массив.

Таким образом, в приведенном выше примере item => item * 2 является эквивалентом стрелочной функции:

Мы рекомендуем вам использовать стрелочные функции, так как они могут сделать ваш код короче и читабельнее. Чтобы узнать больше, см. раздел о стрелочных функциях в руководстве по JavaScript и нашу справочную страницу по стрелочным функциям.

Примечание. Между функциями стрелок и обычными функциями есть небольшие различия. Они выходят за рамки этого вводного руководства и вряд ли будут иметь значение в случаях, которые мы здесь обсуждали. Дополнительные сведения см. в справочной документации по стрелочным функциям.

Живой образец функции стрелки

Вот полный рабочий пример примера нажатия клавиши, который мы обсуждали выше:

Результат — попробуйте ввести текст в текстовое поле и посмотрите, что будет:

Область действия и конфликты

Давайте немного поговорим о области действия — очень важном понятии при работе с функциями. Когда вы создаете функцию, переменные и другие вещи, определенные внутри функции, находятся внутри своей отдельной области, а это означает, что они заперты в своих отдельных отсеках, недостижимых для кода вне функций.

Верхний уровень за пределами всех ваших функций называется глобальной областью.Значения, определенные в глобальной области видимости, доступны из любой части кода.

JavaScript настроен таким образом по разным причинам, но в основном из-за безопасности и организации. Иногда вы не хотите, чтобы переменные были доступны отовсюду в коде — внешние скрипты, которые вы вызываете из другого места, могут начать путаться с вашим кодом и вызвать проблемы, потому что они используют те же имена переменных, что и другие части кода. , вызывая конфликты. Это может быть сделано злонамеренно или случайно.

Например, предположим, что у вас есть файл HTML, который вызывает два внешних файла JavaScript, и в обоих из них определены переменная и функция, использующие одно и то же имя:

Обе функции, которые вы хотите вызвать, называются Greeting() , но вы можете получить доступ только к функции Greeting() первого файла .js (вторая функция игнорируется). Кроме того, возникает ошибка при попытке (во втором файле.js) присвоить новое значение переменной name, потому что она уже была объявлена ​​с помощью const и поэтому не может быть переназначена.

Примечание. Вы можете увидеть этот пример в реальном времени на GitHub (см. также исходный код).

Сохранение частей кода в функциях позволяет избежать таких проблем и считается лучшей практикой.

Это немного похоже на зоопарк. Львы, зебры, тигры и пингвины содержатся в своих вольерах и имеют доступ только к вещам внутри своих вольеров — таким же образом, как и области действия. Если бы они могли попасть в другие корпуса, возникли бы проблемы. В лучшем случае разные животные чувствовали бы себя очень некомфортно в незнакомой среде обитания — лев или тигр чувствовали бы себя ужасно в водном ледяном царстве пингвинов. В худшем случае пингвинов попытаются съесть львы и тигры!

< бр />

Служба зоопарка похожа на глобальную область: у него есть ключи для доступа к каждому вольеру, пополнения запасов еды, ухода за больными животными и т. д.

Активное обучение: игра с масштабом

Давайте рассмотрим реальный пример, чтобы продемонстрировать область действия.

  1. Сначала сделайте локальную копию нашего примера function-scope.html. Он содержит две функции с именами a() и b() и три переменные — x, y и z — две из которых определены внутри функций, а одна — в глобальной области видимости. Он также содержит третью функцию с именем output() , которая принимает один параметр и выводит его в абзаце на странице.
  2. Откройте пример в браузере и текстовом редакторе.
  3. Откройте консоль JavaScript в инструментах разработчика браузера. В консоли JavaScript введите следующую команду:

Сохраните код и перезагрузите его в браузере, а затем попробуйте вызвать функции a() и b() из консоли JavaScript:

Примечание: одни и те же правила области действия не применяются к циклам (например, for() < . >) и условным блокам (например, if() < . >) — они очень похожи, но это не одно и то же! Будьте осторожны, чтобы не перепутать их.

Примечание. Ошибка ReferenceError: "x" не определена — одна из наиболее распространенных ошибок. Если вы получили эту ошибку и уверены, что определили рассматриваемую переменную, проверьте, в какой области она находится.

Проверьте свои навыки!

Вы дошли до конца этой статьи, но можете ли вы вспомнить самую важную информацию? Вы можете найти дополнительные тесты, чтобы убедиться, что вы сохранили эту информацию, прежде чем двигаться дальше — см. Проверка ваших навыков: функции. Эти тесты требуют навыков, описанных в следующих двух статьях, поэтому вы можете сначала прочитать их, прежде чем пробовать.

Заключение

В этой статье мы рассмотрели фундаментальные концепции функций, проложив путь к следующей статье, в которой мы рассмотрим практические вопросы и проведем вас через этапы создания собственной пользовательской функции.

ИЭУ

      • Состояние образованияДайджест статистики образованияПрогнозы статистики образованияТематические исследования
      • Национальная программа оценки образовательного прогресса (NAEP) для международной оценки компетенций взрослых (PIAAC)
      • Программа международной деятельности (IAP)
      • Продольное исследование раннего детства (ECLS)Национальное обследование образования домохозяйств (NHES)
      • Common Core of Data (CCD)Secondary Longitudinal Studies ProgramEducation Demographic and Geographic Estimates (EDGE)National Teacher and Principal Survey (NTPS)подробнее.
      • Программа библиотечной статистики
      • Бакалавриат и выше (B&B)Статистика профессионального/технического образования (CTES)Интегрированная система данных о высшем образовании (IPEDS)Национальное исследование помощи учащимся послесреднего образования (NPSAS)подробнее.
      • Общие стандарты данных в сфере образования (CEDS)Национальный форум по статистике образованияГосударственная программа грантов для систем продольных данных — (SLDS)подробнее.
      • Программа статистических стандартов Национального кооператива послесреднего образования (NPEC) для дистанционного обучения.
        • EDATDelta Cost ProjectIPEDS Data CenterКак подать заявку на лицензию с ограниченным использованием
        • Таблицы ASC-EDЛаборатория данныхЭлементарная вторичная информационная системаInternational Data ExplorerIPEDS Data CenterNAEP Data Explorer
        • Панель управления ACSCollege NavigatorЧастные школыГосударственные школьные округаГосударственные школыПоиск школ и колледжей
        • Профили штатов NAEP (nationsreportcard.gov)Поиск коллег по финансам округа государственных школЦентр статистики финансов образованияЦентр данных IPEDS
        • Инструмент вопросов NAEPИнструмент вопросов NAAL
        • Панель управления ACS-EDКарты ACS-EDКарта колледжаПоиск по регионуMapEdSAFEMapSchool and District Navigator
        • Инвентаризация библиографических данных
        • ОценкиРаннее детствоНачальное и среднее образованиеБиблиотекаПослешкольное образование и дополнительные ресурсы
        • Блог NCESЧто нового в NCESКонференции/обучениеНовостиFlashВозможности финансированияПресс-релизыStatChat
        • Поиск по публикациям и продуктамГодовые отчетыЛицензии на данные с ограниченным использованием
          Последние публикацииПо предметному указателю A-ZПо областям исследований и программДанные Продукты за последние 6 месяцев
        • О NCESCommissionerСвязаться с NCESStaffHelp

        Это действительно происходит!

        Ким осторожно подошла к Фреду. Как менеджер по безопасности, она знала, как важно полностью собрать информацию, прежде чем делать поспешные выводы. «Фред, мой просмотр наших компьютерных журналов показывает, что вы входили в систему и просматривали конфиденциальную информацию об учениках. Я не мог понять, почему кому-то из службы общественного питания нужно просматривать результаты тестов отдельных учеников, поэтому я подумал, что я зайди и спроси."

        Фред посмотрел на Ким так, словно был удивлен, что задал такой вопрос. "Вы забыли, что у меня есть доступ к студенческим записям?"

        "У вас есть доступ к определенным элементам, связанным с правом учащегося на бесплатные и льготные обеды", – пояснила Ким. "Это предел вашей потребности знать."

        "Я не знал, что мой доступ ограничен", – честно заявил Фред. "Я решил, что если мой пароль приведет меня к файлу, это будет честная игра."

        Ким сделал паузу, поняв, что для Фреда могло быть разумным предположить, что ему разрешено читать файл, если его пароль дает ему доступ. «Хм, я понимаю вашу точку зрения, Фред, но, по правде говоря, вы не должны получать доступ к информации об успеваемости, которая не связана с вашими законными образовательными обязанностями. На этот раз я не буду придавать этому большого значения, но от а теперь ограничьте просмотр информацией о бесплатных обедах и обедах по сниженным ценам. А пока я собираюсь разослать персоналу записку, напоминающую им, что на самом деле означает необходимость знать."


        Несомненно, организация имеет право защищать свои вычислительные и информационные ресурсы с помощью действий по обеспечению безопасности доступа пользователей, однако пользователи ( независимо от того, авторизованы они или нет) также имеют права. Необходимо приложить разумные усилия, чтобы информировать всех пользователей, даже незваных хакеров, о том, что система находится под наблюдением и что несанкционированная деятельность будет наказана и/или преследована в судебном порядке, если это будет сочтено целесообразным. Если такие усилия не будут предприняты, организация может фактически нарушать права на неприкосновенность частной жизни своих злоумышленников!

        В. Можно ли иметь безопасную систему, если у вас есть сотрудники, которые работают удаленно или работают по нестандартному графику?
        A. да. Хотя определенные контрмеры, возможно, придется скорректировать, чтобы приспособить к нетрадиционным графикам (например, практика ограничения пользователей допустимым временем и местоположением входа в систему), система с удаленными сотрудниками, частыми путешественниками и другими пользователями удаленного доступа все еще может быть безопасной. Это может потребовать от разработчиков политики более творческого мышления, но каждое руководство по безопасности в любом случае должно быть адаптировано для удовлетворения потребностей организации (см. главу 2).

        В. Является ли использование паролей эффективной стратегией защиты системы?
        A. Тот факт, что системы паролей являются наиболее распространенной стратегией аутентификации, применяемой в настоящее время, не означает, что они стали менее эффективными. На самом деле причина их популярности именно в том, что они могут быть очень полезны для ограничения доступа к системе. Основное беспокойство в отношении систем паролей вызывает не их техническая целостность, а степень, в которой (как и многие стратегии) ​​они зависят от надлежащего применения пользователями.Хотя, безусловно, существуют более дорогие и даже эффективные способы ограничения доступа пользователей, если анализ рисков определяет, что система паролей отвечает потребностям организации и является наиболее рентабельной, вы можете быть уверены в защите паролей, пока пользователи правильно внедряют систему. -что, в свою очередь, требует соответствующей подготовки персонала (см. главу 10).

        Инициирование процедур безопасности также приносит пользу пользователям:

        1) помогает им защитить свои собственные файлы

        2) снижает вероятность неправомерного раскрытия конфиденциальной информации

        p>

        3) Информировать их о том, что считается и что не считается приемлемым поведением

          Намеренные действия (например, совместное использование учетных записей пользователей, взлом, спуфинг пользователей или выдача себя за других)

          Ограничьте доступ пользователей только к тем файлам, которые им необходимы для работы. Предоставление ненужного доступа значительно увеличивает риск без соответствующего увеличения выгоды. Зачем беспокоиться?

          Выберите систему аутентификации. Правильный выбор системы аутентификации зависит от потребностей организации и ее системы и должен основываться на результатах оценки рисков (см. главу 2). Обратите внимание, что следующие варианты переходят от наименее безопасных к наиболее безопасным, а также (что неудивительно) от наименее дорогих к наиболее дорогим:

          Что-то известное пользователю (например, пароль — см. ниже)

        Поскольку пароли являются наиболее распространенным методом аутентификации пользователей, они заслуживают особого внимания.

          Требовать, чтобы пароль состоял не менее чем из шести символов (хотя предпочтительнее от восьми до десяти). использование паролей, которые представляют собой слова, имена, даты или другие обычно ожидаемые форматы. использование паролей, которые отражают или идентифицируют владельца учетной записи (например, без дат рождения, инициалов или имен домашних животных). сочетание символов (например, буквы/цифры и верхний/нижний регистр, если система чувствительна к регистру).

          системному администратору изменить все предустановленные пароли, встроенные в программное обеспечение (например, супервизора, демо и root). требовать смены паролей через заданные промежутки времени (например, раз в месяц). нулевая терпимость к обмену паролями. незащищенное хранение личных паролей (например, их нельзя записывать на стикерах Post-It™ и прикреплять скотчем к боковой стороне монитора). отправить пароль в составе сообщения электронной почты. пользователям не вводить свой пароль, когда кто-то может наблюдать. (или иным образом неясным) отображение пароля на мониторе, когда пользователи вводят его. пользователи, что легко изменить пароль, если они думают, что их пароль мог быть скомпрометирован. зашифрованная история паролей, чтобы убедиться, что пользователи не просто используют старые пароли, когда они должны их менять. рабочем месте, чтобы убедиться, что все правила соблюдаются.

        Это действительно происходит!

        Директор Маллинз был сторонником правил, но он также серьезно относился к выполнению работы. Когда через две недели после начала занятий он узнал, что ни один из трех его новых учителей еще не получил учетные записи в компьютерной сети из центрального офиса, он пришел в ярость. У них было достаточно поводов для беспокойства, и им не мешало оставаться в автономном режиме. Он позвал своего помощника: «Меня не волнует, запрещает политика безопасности совместное использование паролей или нет, этим людям нужно войти в систему. Пусть они используют мой пароль для входа — это «A4a6dc», понятно? что у них есть доступ ко всему, что им нужно для работы!"

        Прошло три недели, прежде чем системный администратор отправил письмо директору Маллинзу по электронной почте о явном неправильном использовании его пароля: «Системные журналы почти ежедневно показывают случаи, когда несколько человек одновременно пытаются войти в систему с вашим паролем. Пожалуйста, немедленно измените пароль и дайте мне знать, если у вас есть какие-либо идеи о том, кто его использует не по назначению."


        Не забудьте настроить контрмеры в соответствии с потребностями организации и пользователей.


        Некоторые злоумышленники используют «словари паролей», которые в буквальном смысле пытаются сопоставлять пароли по одному слову в течение тысяч и тысяч попыток!

          Ограничьте пользователям допустимое время входа в систему: у обычного сотрудника дневной смены нет причин получать доступ к системе посреди ночи.

        Читайте также: