Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.11.2018, 19:17
Профессор
Отправить личное сообщение для torsar Посмотреть профиль Найти все сообщения от torsar
 
Регистрация: 06.01.2012
Сообщений: 409

e=!!e; //Зачем?
Сабж.
Ответить с цитированием
  #2 (permalink)  
Старый 05.11.2018, 19:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,114

torsar,
чтобы e стало Boolean.
Логическое преобразование
Ответить с цитированием
  #3 (permalink)  
Старый 05.11.2018, 19:47
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

почти то же самое что и
e = Boolean(e)
Ответить с цитированием
  #4 (permalink)  
Старый 05.11.2018, 19:54
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

На самом деле не за чем. В любом случае когда e будет использоваться как boolean оно и станет автоматически boolean по тем же самым правилам.
Чисто паранойи ради, разве что.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 06.11.2018, 00:36
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Aetae,
alert('0' == !!'0');

вот вам и исключение
Ответить с цитированием
  #6 (permalink)  
Старый 06.11.2018, 00:39
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

console.log(true == !!'0');
console.log(true == '0');


расписал чтобы понятней было
Ответить с цитированием
  #7 (permalink)  
Старый 06.11.2018, 02:44
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Только так делают опять же только параноики.)
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 06.11.2018, 03:51
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

эх... параноики
Ответить с цитированием
  #9 (permalink)  
Старый 06.11.2018, 21:15
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Сообщение от torsar Посмотреть сообщение
Сабж.
Это явное приведение типа не явным способом.(просто так короче)
Цитата:
Только так делают опять же только параноики.)
Некоторые операции над разными типами производятся по разному.
<script>
function sum1 (a,b,c){
    return a+b+c;
};
function sum2 (a,b,c){
    return Number(a) + Number(b) + Number(c);
};
alert ( sum1 (1,"1",1) );
alert ( sum2 (1,"1",1) );
</script>

На этом форуме не редко встречаются темы где не могут понять ошибку в следствии не явного приведения типов в JS.

Несколько примеров из разряда отгадай какой вывод будет у выражения.
true + false
12 / "6"
"number" + 15 + 3
15 + 3 + "number"
[1] > null
"foo" + + "bar"
'true' == true
false == 'false'
null == ''
!!"false" == !!"true"
[‘x’] == ‘x’
[] + null + 1
0 || "0" && {}
[1,2,3] == [1,2,3]
{}+[]+{}+[1]
!+[]+[]+![]
new Date(0) - 0
new Date(0) + 0
(Нагуглено на странице )

Последний раз редактировалось MallSerg, 06.11.2018 в 21:19.
Ответить с цитированием
Ответ



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

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