Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Константы в JavaScript  (Прочитано 21476 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« : 01-01-2007 20:11 » 

const f = 5;
выдает синтаксическую ошибку...а в книге написано должно работать
ниче не пойму(


и еще вопросик прикреплю
цитата:
Значение undefined ведёт себя как false, если используется с булевым значением. Например, следующий код выполняет функцию myFunction, поскольку элемент массива не определён:
myArray=new Array()
if (!myArray[0])
   myFunction()

что значит "if(!myArray[0])" ? интересует восклицителньый знак перед именем массива
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 01-01-2007 20:27 » 

Если myArray[0] == true то
!myArray[0] == false

И наоборот. В С++ любое число не равное 0 это true, нуль это false.

Насчет константы. Может еше надо и тип указать?
const  int f=5;
« Последнее редактирование: 01-01-2007 20:28 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 01-01-2007 20:54 » 

Razor, слово const зарезервировано, но не является конструкцией языка! Нет констант в JS! Подозреваю, что пример у тебя не для JS, либо он некорректный.

Finch, JS - язык слаботипизированный. В нем тип вообще не нужно указывать - только в new, но скаляры так не создают.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 01-01-2007 21:09 » 

RXL, а как тада создать переменную наподобие "конастанты", т.е. переменную только для чтения?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 01-01-2007 21:51 » 

Razor, никак. Язык это не предусматривает.

Существуют политики доступа и встроенные в браузер объекты могут быть read only. Можно ли установить политику доступа для пользовательских объектов - не знаю. Я бы не стал на это замарачиваться.

Есть хороший способ отличить переменную, "назначенную" константой, от прочих имен: давать "константам" имена в верхнем регистре. Т.е. это будет точно такая же переменная, как и все, но будет легко понять, что изменять ее не нужно.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 01-01-2007 22:09 » 

RXL, Finch, благодарю
Записан
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 02-01-2007 09:32 » 

RXL, а книга, из которой пример с константой назвается
Ядро JavaScript 1.5. Руководство по Использованию.
монжо в интернете ее скачать...
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 02-01-2007 11:26 » 

Razor, тут ты немного не прав.

Core JavaScript Reference 1.5
Цитата
const

Declares a readonly, named constant.

Implemented inJavaScript 1.5, NES 6.0 (Netscape extension, C engine only)
Тут не написано, что эта конструкция вошла в стандарт (для вошиедших есть еще одна строчка в таблице)! Она попрежнему является зарезервированным словом, но реализация есть только в Netscape 6.0.
N6 - браузер периода войны Netscape-Miscrosoft и в нем были фичи, которые нынче не поддерживаются.



Для информации по названиям стандартов:
НазваниеЧей стандарт
JavaScriptNetscape, Mozilla
JScriptMicrosoft
ECMAScriptECMA
ECMA - это объединенный стандарт.
« Последнее редактирование: 02-01-2007 11:29 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 02-01-2007 15:42 » 

RXL, ну вплане если на ECMA опираться, то этот стандарт будет работать с продуктами всех фирм?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 02-01-2007 21:19 » new

Razor, не факт, но должен - для того этот стандарт и создавался. Если мне не изменяет память, ECMA-262 объединяет JavaScript 1.5 и JScript 5.0.

Самые большие различия не в самом языке, а во встроенных объектах браузеров - тут гимор на пару порядков больший. Полистай последние темы тут, в разделе HTML/DHTML и Флейм.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines