1 Предполагается, что вам нужно показать текущее время в формате 09:30 PM . Это был бы довольно легкий подход. Даже если вы не нуждаетесь в этом в текущий момент времени, вы можете использовать приведенный ниже DateFormat для своих требований.
Calendar cal = Calendar.getInstance();
DateFormat outputFormat = new SimpleDateFormat("KK:mm a");
String formattedTime = outputFormat.format(cal.getTime());
2 Примечание: Следующий форматтер можно использовать для отображения того же времени в 24-часовом формате ( 21:30 ).
new SimpleDateFormat("HH:mm");
3 Однако, если вы хотите создать тот же формат, что и в моем первом пункте, лучше использовать следующий код, так как Java не поощряет использование StringTokenizer , Вы можете прочитать об этом здесь, http://docs.oracle.com/javase/6/docs/api/java/util/StringTokenizer.html
Надеюсь, это поможет вам, спасибо!
String startTime = "2013-02-27 21:06:30";
String[] parts = startTime.split(" ");
DateFormat outputFormat = new SimpleDateFormat("KK:mm a");
SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm:ss");
try {
Date dt = parseFormat.parse(parts[1]);
System.out.println(outputFormat.format(dt));
} catch(ParseException exc) {
exc.printStackTrace();
}
Вы должны ввести любую переменную с помощью оператора var
, иначе она попадет в глобальную область видимости.
Стоит отметить, что в строгом режиме ( "use strict";
) присвоение необъявленных переменных вызывает ReferenceError
.
В настоящее время JavaScript не имеет области видимости блока. Школа Крокфорда учит вас помещать операторы var в начало тела функции , в то время как в Dojo Style Guide говорится, что все переменные должны быть объявлены в минимально возможной области . (Оператор let
и определение , представленные в JavaScript 1.7, не являются частью стандарта ECMAScript.)
Это хорошая практика для связывания регулярно используемых объектов » properties в локальные переменные, так как это быстрее, чем искать всю цепочку областей видимости. (См. Оптимизация JavaScript для максимальной производительности и низкого потребления памяти .)
Если вы не нужно обращаться к объектам за пределами кода, весь код можно заключить в выражение функции - это называется шаблоном модуля. Он имеет преимущества в производительности, а также позволяет минимизировать и скрывать ваш код на высоком уровне. Вы также можете убедиться, что он не загрязняет глобальное пространство имен. Функции упаковки в JavaScript также позволяют добавлять аспектно-ориентированное поведение. У Бена Черри есть подробная статья о шаблоне модуля .
Если вы используете псевдоклассическое наследование в JavaScript, вряд ли можно избежать использования this
. Какой шаблон наследования использовать - дело вкуса. В других случаях см. Статью Питера Мишо о виджетах JavaScript без "this" .
function myname ()
- это объявление функции, а myname = function ();
- это выражение функции, присвоенное переменной myname
. Последняя форма указывает, что функции являются объектами первого класса, и с ними можно делать все, что угодно, как с переменной. Единственное различие между ними состоит в том, что все объявления функций поднимаются в верхнюю часть области видимости, что может иметь значение в некоторых случаях. В остальном они равны. function foo ()
- это сокращенная форма. Дополнительную информацию о подъеме можно найти в статье JavaScript Scoping and Hoisting .
Это зависит от вас. В JavaScript есть четыре шаблона создания объектов: псевдоклассический, прототипный, функциональный и частичный ( Crockford, 2008 ). У каждого есть свои плюсы и минусы, см. Крокфорд в его видео беседах или получите его книгу Хорошие части , как Анон уже предложил .
Я предлагаю вам выбрать несколько фреймворков JavaScript, изучить их соглашения и стиль и найти те практики и шаблоны, которые вам больше всего подходят. Например, Dojo Toolkit предоставляет надежную структуру для написания объектно-ориентированного кода JavaScript, который даже поддерживает множественное наследование.
Наконец, есть блог, посвященный изучению распространенных шаблонов и анти-шаблонов JavaScript . Также ознакомьтесь с вопросом Существуют ли стандарты кодирования для JavaScript? в Stack Overflow.
Сначала следует прочитать о программировании на основе прототипов , чтобы вы знали, с каким чудовищем вы имеете дело, а затем взгляните на руководство по стилю JavaScript. на странице MDC и JavaScript в MDC . Я также считаю, что лучше всего повысить качество кода с помощью инструмента, т.е. JavaScript Lint или другие варианты.
Лучшие методы объектно-ориентированного программирования больше похожи на то, что вы хотите найти шаблоны, чем на качество кода, поэтому посмотрите поиск Google: шаблоны javascript и ] Шаблоны jQuery .
Возможно, вы захотите ознакомиться с Секретами JavaScript-ниндзя Джона Ресига (jQuery). «Эта книга предназначена для опытного разработчика JavaScript и дает ему знания, необходимые для создания кроссбраузерной библиотеки JavaScript с нуля»
Черновик доступен через издателя: http://www.manning.com/resig/
У Дугласа Крокфорда также есть несколько хороших статей о JavaScript на своей домашней странице: http://www.crockford.com/
Вот книга, которая охватывает большинство основ:
Объектно-ориентированный Javascript для высококачественных приложений и библиотек
Я часто чувствую себя единственным здесь парнем, который использует MooTools для моего javascript.
Это означает M y O bject O riented Tools, mootools.
Мне очень нравится их подход к ООП в javascript. Вы также можете использовать их реализацию класса вместе с jquery, поэтому вам не нужно отказываться от jquery (хотя mootools также делает все это).
В любом случае, прочтите первую ссылку и посмотрите, что вы думаете, вторая ссылка ведет к документации mootools.
Я собираюсь записать некоторые материалы, которые я прочитал, или подали заявку, так как я задал этот вопрос. Так что люди, читающие его, не будут разочарованы, поскольку большинство ответов - это замаскированные RTMF (даже если я должен признать, предлагаемые книги ДЕЙСТВИТЕЛЬНО хороши).
Предполагается, что любая переменная уже объявлена в более высокий объем в JS. Поэтому, когда вам понадобится новая переменная, объявляйте ее, чтобы избежать неприятных сюрпризов, таких как манипулирование глобальной переменной, не замечая этого. Поэтому всегда используйте ключевое слово var.
В make объекта, var переменная private. Если вы хотите просто объявить общедоступную переменную, используйте для этого this.my_var = my_value
.
В JS существует множество способов объявления методов. Для объектно-ориентированного программиста наиболее естественным и в то же время эффективным способом является использование следующего синтаксиса:
Внутри тела объекта
this.methodName = function(param) {
/* bla */
};
Есть недостаток: внутренние функции не смогут получить доступ к "this" из-за забавного Объем JS. Дуглас Крокфорд рекомендует обойти это ограничение, используя обычную локальную переменную с именем «that». Таким образом, он становится
function MyObject() {
var that = this;
this.myMethod = function() {
jQuery.doSomethingCrazy(that.callbackMethod);
};
};
JS пытается автоматически добавить ;
в конец строки, если вы его забудете. Не полагайтесь на такое поведение, поскольку вы получите ошибки, которые сложно отлаживать.