true || undefined // true 
		
		
		
		Поясните пожалуйста почему? 
	var a=false var b=true var c=undefined console.log((a || c)) //undefined console.log((b || c))//true  | 
	
		
  | 
	
		
 Это приводит к  
	console.log((a || c)!=(c || a)) //true  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 а в случае console.log((a || c)) // внезапно undefined даже не false! Это просто фича такая:)  | 
	
		
 Я к чему это написал, что правильнее было бы сделать оба выражения учитывающих только операнды со значением , либо если один из операндов undefined, то и всё выражение тоже undefined 
	 | 
	
		
 Цитата: 
	
 Правильно придерживаться спецификации языка где операции над операндами совершаются согласно описанию а приоритет операций согласно таблице приоритетов. То что ты считаешь правильным поломает логику работы языка и приведет к различному поведению в различных ситуациях.  | 
	
		
 Нельзя поломать то, что уже поломано. И именно в булевых выражениях.  
	1+ undefined и undefined+1 даст одно и то же NaN. С точки зрения логики ассоциативность в языке не должна влиять на результат булевых выражений . Так что не чушь.  | 
	
		
 Ну так и используй плюс. 
	У логического или другой алгоритм работы. Именно по этому плюс и возвращает NaN А логическое "или" первое истинное значение из операндов.  | 
	
		
 Цитата: 
	
  | 
| Часовой пояс GMT +3, время: 12:30. |