Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.07.2011, 12:19
Кандидат Javascript-наук
Отправить личное сообщение для nyols Посмотреть профиль Найти все сообщения от nyols
 
Регистрация: 16.02.2011
Сообщений: 134

Присваивания условия.
Очень часто в Javascript можно заметить подобные строчки.
var myVar = myVar || 'text';

Если переменная myVar не определена, то в качестве значения она получит строку 'text'

В PHP подобная конструкция не работает, то есть если написать:
$_POST['myVar'] = $_POST['myVar'] || 'text';

То после такой строки $_POST['myVar'] будет равен 1 (единице, то есть true)

Почему в PHP так не работает, или же наоборот почему в JS не присваивается значения условия ?
Ответить с цитированием
  #2 (permalink)  
Старый 06.07.2011, 12:22
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Потому что семантика этих операторов в PHP и в JavaScript разная.
Ответить с цитированием
  #3 (permalink)  
Старый 06.07.2011, 12:25
Кандидат Javascript-наук
Отправить личное сообщение для nyols Посмотреть профиль Найти все сообщения от nyols
 
Регистрация: 16.02.2011
Сообщений: 134

А что такое семантика и чем она отличается ?))
Ответить с цитированием
  #4 (permalink)  
Старый 06.07.2011, 12:28
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от nyols
почему в JS не присваивается значения условия ?
Потому как в доке написано
Цитата:
expr1 || expr2

Возвращает expr1, если оно может быть преобразовано к true; в ином случае возвращает expr2.
http://javascript.ru/boolean-operators

А expr2 в нашем случае - 'text'

Сообщение от nyols
Почему в PHP так не работает
Например у нас в Cache просто вылетит на ошибку, что переменная не определена...
Ответить с цитированием
  #5 (permalink)  
Старый 06.07.2011, 12:30
Кандидат Javascript-наук
Отправить личное сообщение для nyols Посмотреть профиль Найти все сообщения от nyols
 
Регистрация: 16.02.2011
Сообщений: 134

Я то думал что все языки программирования одинаковые, меняется только синтаксис и набор функций)))
Оказывается что и логика у них разная может быть)
Ответить с цитированием
  #6 (permalink)  
Старый 06.07.2011, 12:31
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от nyols
А что такое семантика
Луче и не ответить...
http://slovari.yandex.ru/~книги...ейская/
Ответить с цитированием
  #7 (permalink)  
Старый 06.07.2011, 12:32
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от nyols
Оказывается что и логика у них разная может быть)
Это не логика...

Сообщение от nyols
Я то думал что все языки программирования одинаковые, меняется только синтаксис и набор функций
Так и есть.
Ответить с цитированием
  #8 (permalink)  
Старый 06.07.2011, 12:47
Кандидат Javascript-наук
Отправить личное сообщение для nyols Посмотреть профиль Найти все сообщения от nyols
 
Регистрация: 16.02.2011
Сообщений: 134

Сообщение от ksa
Луче и не ответить...
http://slovari.yandex.ru/~книги...�ейская/


А, еще такой вопрос про оператор сравнения
Чем отличается == и === ?
И в каких случаях нужно использовать именно === ?
А вообще где можно почитать про такие тонкости на JS ?

Сообщение от ksa
Это не логика...
Почему не логика, получается что JS думает по другому, логично же ведь что бы возвращал true/false а не что то другое))
Ответить с цитированием
  #9 (permalink)  
Старый 06.07.2011, 12:55
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от nyols
получается что JS думает по другому
Нет.
Т.к. "думает" он как и все остальные языки - согласно своему описанию/документации.

Сообщение от nyols
логично же ведь что бы возвращал true/false а не что то другое
Кому логично?
Мне например логично прочитать как работает оператор и использовать все его возможности...
Правда я не сторонник использования каких-то особенных загибонов язвка, которые и понять-то не все смогут.
Но это про вообще, а не JS в частности...

Сообщение от nyols
Чем отличается == и === ?
Ну косинус же! (с)
http://javascript.ru/comparison-operators

Сообщение от nyols
А вообще где можно почитать про такие тонкости на JS ?
Да хоть тут...
http://javascript.ru/manual
Ответить с цитированием
  #10 (permalink)  
Старый 06.07.2011, 14:14
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

И вот тут. Про все операторы)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Статестические условия для random volodimirklimenko Элементы интерфейса 16 30.06.2011 17:59
Два условия в for HelpeR Общие вопросы Javascript 3 08.10.2010 16:41
Условия. Ajax doniv jQuery 4 04.03.2010 15:34
Условия в скрипте в зависимости от input type="radio" FladeX jQuery 15 17.02.2010 17:27
Jquery Два условия hangover Общие вопросы Javascript 0 14.12.2009 20:32