один из способов классификации языка программирования - это то, насколько он сильно или слабо набирается. Здесь «напечатано» означает, что переменные известны во время компиляции. Примером этого может быть сценарий, в котором целое число (1) добавляется в строку, содержащую целое число ("1"):
result = 1 "1";
result = 1 "1";
строка, содержащая целое число, могла быть непреднамеренно сгенерирована из сложного набора логики с множеством движущихся частей. Это также могло быть намеренно сгенерировано из одного источника истины.
]
Несмотря на коннотации, что термины «слабые» и «сильные» подразумевают, тесный язык программирования не обязательно лучше, чем слабое. Могут быть сценарии, где гибкость необходима больше, чем жесткость, и наоборот. Как и во многих аспектах программирования, ответ зависит от нескольких внешних контекстов (то есть «это зависит»).
]
Другой интересный бит - нет формального определения того, что представляет собой сильное или слабое набор. Это означает, что восприятие того, что считается сильно или слабости, отличается от человека к человеку и может измениться с течением времени.
]
Машинопись
javaScript считается слабовывым языком, и эта гибкость способствовала его раннему принятию в Интернете. Однако, поскольку сеть созрела и промышленно развита, варианты использования JavaScript стали более сложными.
расширения, подобные TypeScript, были созданы, чтобы помочь с этим. Думайте об этом как о «плагине» для JavaScript, который приносит сильную набор на язык. Это помогает программистам ориентироваться в сложных настройках. Примером этого может быть приложение для одной страницы, используемое для электронной коммерции, используется для электронной коммерции.
]
TypeScript в настоящее время очень популярен в индустрии веб -разработки, и многие новые проекты по умолчанию используют TypeScript при первой настройке.
]
время компиляции
]
время компиляции - это момент, когда язык программирования преобразуется в машинный код. Это предшественник времени выполнения, момент, когда компьютер выполняется машинный код.
]
Как и во многих вещах в Интернете, время компиляции немного сложно. Настройка, которая использует TypeScript, будет сшиться вместе компонентов кода JavaScript и компилировать их в один файл JavaScript для браузера для чтения и запуска.
]
время, когда компиляция компонентов составляет, когда они все объединены. TypeScript служит своего рода надзирателем, и будет кричать на вас, если вы попытаетесь сломать напечатанные конвенции, которые вы настроили для себя до того, как произойдет комбинация.
] Файл JavaScript сшита, затем принимается браузером, который имеет свое собственное время компиляции. Время компиляции браузера сильно варьируется, в зависимости от:
]
Устройство, в котором работает браузер, - ]
, какую другую работу выполняет браузер, и -
, какая еще работа выполняют другие программы устройства. -
]
TypeScript не используется напрямую в браузере, но его присутствие ощущается. JavaScript хрупкий. TypeScript помогает с этой хрупкостью, пытаясь предотвратить ошибки вверх по течению в редакторе кода. Это уменьшает случайные ошибки в JavaScript, прочитанном браузером - ошибки, которые заставит JavaScript прекратить функционирование на веб -сайте или веб -приложении, которое использует человек.
CSS
CSS является декларативным языком программирования, специфичным для домена. Это также сильно напечатано. По большей части значения в CSS остаются объявленными как авторизованные. Если значение является недействительным, браузер отбрасывает все свойство.
]
типы в CSS
Список типов в CSS тщательный. Они есть:
текстовые типы
]
Globalally-Scoped Keywords: -
initial -
inherit -
unset -
revert -
custom Identifies, которые специфически используются для вещей, так же, как это так, так как это. name -
strings, например, "hello" -
urls, например, https://css-tricks.com/-
числовые типы -
]
integers, которые являются десятичными числами 0–9
реальных чисел, такие как 3.14
- проценты, такие как 25%
] - измерения, число с единицей, прилагаемым к нему, таким как (100px или 3s)
-
типы количества - ]
- junds:
- абсолютные длины, такие как пиксели или сантиметры
относительные длины, такие как root ems или высота видопала
время, например, 250ms -
частоты, такие 16Hz -
резолюция, например, 96dpi -
размеры и длины могут показаться похожими, но размеры могут содержать проценты, а длины не могут. - ]
типы цветов
]
- Keywords:
- названные цвета, такие как Papayawhip
- Transparent
- currentColor
rgb/rgba natation, например, Rgba (105, 221, 174, 0.5)
- hsl/hsla colors, таковые как hsl (287, 76%, 50%)
- типы изображений
- ]
изображение, которое является ссылкой на URL-файл изображения или градиент -
цветовой стоп-лист, список из двух или более цветовых остановок, используемых для градиента Color
окончательную форму, который использует ключевое слово круга или эллипса для радиальных градиентов -
]
- 2d типы позиционирования
-
Keywords:
top -
right -
внизу
Left
программирование в CSS
]
- основная часть программирования в CSS является авторизацией селекторов, а затем указывает набор свойств и их необходимые значения. Коллекции селекторов придают контенту визуальную форму, так же, как коллекции логики JavaScript создают функции.
]
- CSS имеет функции. Он может выполнять расчет, условную логику, алгоритмические выражения, состояние и поведение на основе режима. Он также обладает пользовательскими свойствами, которые эффективно являются переменными CSS, которые позволяют динамически обновлять значения. Черт, вы можете даже решить Fizzbuzz с CSS.
]
- Как и другие языки программирования, существует также слой «мета», с разными мыслями и методами о том, как организовать, управлять и поддерживать вещи.
]
- выбросить ошибки
]
- , в отличие от других языков программирования, где код в значительной степени существует под капюшоном, CSS очень визуальный. Вы не увидите предупреждений или ошибок в консоли, если вы используете неверное значение для объявления свойства, но вы получите визуальные эффекты, которые не обновляют то, как вы ожидали.
]
причина этого в том, что CSS устойчив. Когда визуальные эффекты не обновляются из -за неправильно простроенного объявления, CSS приоритет,
, обеспечивая, чтобы контент может быть показан любой ценой
и будет делать все остальные действительные объявления, которые он может. Это соответствует принципам дизайна языка, принципам платформы и всеобъемлющими целями миссии Интернета.
]
- Доказательство
- давайте продемонстрируем, насколько сильная набор ввода в CSS сохраняет ограждения в трех примерах: один с простым объявлением свойства/значения, один с расчетом и один с переосмыслением собственного свойства.
]
- Пример 1: простое свойство/значение значения
]
- ]
]
- для этого примера браузер не понимает декларацию «картофеля» пограничного значения. Обратите внимание, что другие объявления о собственности/стоимости класса. Это пример того, как устойчив CSS.
]
- объявление пограничного стиля ожидает одного из следующих типов текстовых стилей:
Globally-Coped Keywords, или A -
пунктир для пользовательского свойства.
]
Если мы обновим пограничный стиль, чтобы использовать действительное, напечатанное значение пунктирного, браузер отобразит границу!
]
Пример 2: расчет
функция Calc () в CSS позволяет нам взять два аргумента и оператора для возврата рассчитанного результата. Если один из аргументов не использует действительный тип, расчет не будет работать.
]
в этой ручке свойство Font Selecter ожидает значение с числовым типом измерения (например, 1,5Rem). Тем не менее, функция расчета дает неверное значение типа для свойства размер шрифта. Это связано с тем, что второй аргумент в функции calc () - это строка ("2Rem"), а не цифр измерения.
]
из-за этого размер шрифта абзаца возвращается к следующему наиболее применимому родительскому узлу-размер шрифта 1,5 и объявленного в элементе тела.
]
это немного в сорняках, но стоит указать: объединение двух пользовательских свойств в функции Calc () может вызвать ошибки. Хотя оба пользовательских свойства могут быть действительными сами по себе, Calc () не будет принимать пунктирные текстовые типы. Подумайте о сценарии, в котором мы могли бы попытаться умножить пользовательские свойства, которые содержат несоответствующие единицы, например, --big: 500px и--small: 1em.
]
Пример 3: переопределенное пользовательское свойство ]
как переменные JavaScript, пользовательские значения свойств могут быть переопределены. Эта гибкость позволяет легко создавать темные темы цвета режима.
]
в селекторе root этого кода я установил пользовательское свойство--color-cyan, со значением #953Fe3. Затем, в классе .square, я обновил ценность собственности-цветов-Cyan, чтобы быть лучшим. В то время как Top является допустимым, напечатанным значением, это не тот тип, который с отличием фонового цвета.
]
Обратите внимание, что обновленное пользовательское свойство оценивается. И если вы удалите переопределенное пользовательское свойство из .square, вы увидите, что цвет голубой фона закроет.
]
, хотя это немного надуманно, это служит примером того, как переопределение пользовательских свойств может избежать вас, если вы не будете осторожны.
]
это явление можно найти в проектах с плохой общением, более крупными кодовыми базами CSS и ситуациями, в которых препроцессоры CSS используются для построения пользовательских свойств в масштабе.
инструмент
]
с задним числом, я думаю, что отсутствие предупреждений консоли для CSS является недостатком и способствовало многим негативным представлениям о языке.
]
- надеясь, что разработчик заметит, что потенциально крошечные визуальные изменения слишком велики, и не встречает их там, где они находятся для большинства других своих ежедневных инструментов. Есть несколько инициатив, которые я знаю о том, что пытаюсь обратиться к этому.
]
- сначала-StyleLint, Linter, созданный специально для работы с CSS и CSS-подобными языками предварительной обработки. StyleLint может интегрироваться с редакторами кода, бегунами задач, инструментами командной строки и действиями GitHub, чтобы помочь контролировать ваш CSS. Это позволяет ему встречаться с разработчиками, где они уже есть.
во -вторых, отличный набор Firefox вариантов проверки CSS в своих инструментах разработчика. В частности, я хотел бы обратить внимание на его способность идентифицировать неиспользованные CSS. Это чрезвычайно полезно для идентификации селекторов, которые могли противоречить несоответствию типов.
]
warping up
]
CSS сильно печатался до тех пор, пока он был языком программирования, и как язык программирования он существует в течение долгого времени. В последнее время это также сделано много. Если вы не зарегистрировались, есть некоторые новые, удивительные функции.
]
, как JavaScript с сильным типом становится более популярным, я надеюсь, что он поможет разработчикам стать более комфортно с фирмой, но гибким подходом CSS.
]
спасибо Мириам Сюзанне за ее отзыв.
]