JavaScript: 'Запретить начальный _ в идентификаторах' как параметр в JSLint

Я только начал писать свой собственный Фреймворк JavaScript (просто для обучения) и добавил к некоторым частным членам префикс _, например:

var _isFireBugEnabled = function () {
    return (window.console && window.console.firebug);
};

Когда я запустил свой код против JSLint Крокфорда (как всегда) с включенным Recommended Options, мне сказали, что не нужно использовать _ в качестве идентификатора.

Мой вопрос: Почему JSLint предупреждает меня о том, что не нужно использовать _ в качестве идентификатора?

Есть ли какие-то побочные эффекты или последствия, которые мне здесь не хватает?

PS. Насколько я только что смог просканировать, это не задокументировано в книга

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
973
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я действительно написал об этом Крокфорду по электронной почте. Это был его ответ:

I think _ should be reserved for system code implementation, and not used by applications.

Я несколько не согласен с ним, я обычно использую _ для обозначения действительно закрытых членов в моих собственных классах, потому что это дает мне понять, что является закрытым. У Google Caja есть некоторые правила относительно использования _, но нет ничего, что могло бы вызвать проблемы с тем, что вы описываете.

Caja жалуется только на два символа подчеркивания, поэтому {{{foo_}}} в порядке, но {{{foo__}}} запрещено. Это предназначено, среди прочего, для предотвращения случайного доступа к специальным свойствам интерпретатора, таким как {{{прото}}}

Mike Samuel 10.01.2009 02:25
Ответ принят как подходящий

Причина в том, что Дуглас Крокфорд ненавидит около 78% Javascript *. Многие думают, что он немного строг, и на самом деле многие библиотеки действительно используют символы подчеркивания в производственном коде. Я не вижу в этом ничего плохого. Побочных эффектов нет.

Кроме того, символ «$», а не подчеркивание, был выделен Спецификация ECMA для «системного» кода.

from ECMA 262, section 7.6:

This standard specifies one departure from the grammar given in the Unicode standard: The dollar sign ($) and the underscore (_) are permitted anywhere in an identifier. The dollar sign is intended for use only in mechanically generated code.

* Примечание: я шучу. На самом деле он ненавидит только половину, и обычно у него есть веские причины. Я не согласен с Крокфордом здесь, но обычно он очень прав.

Другие вопросы по теме