자바스크립트는 동적 타이핑 언어로써 데이터 타입의 유연성을 제공하기 위해서 느슨한 비교와 엄격한 비교를 따로 나누어 지원한다. 느슨한 비교(==)는 두 피연산자의 "값"만을 비교하지만 엄격한 비교(===)는 "값"과 "데이터타입" 두가지를 동시에 비교한다.
자바스크립트에서 함수는 객체이면서 동시에 객체의 속성을 상속받는 객체의 서브 타입이다. 고로 function 만의 고유한 기능들이 있으며 obj가 접근할 수 없는 부분이 있다. 고로 객체 안에서도 차별화되는 부분이 있다.
단축 평가 되기 때문인데 단축 평가란 논리 연산의 결과를 결정하는 피연산자를(위에서는 Dog, 논리곱&& 이기 때문) 형변환하지 않고 그대로 출력해버리는데 이처럼 표현식을 평가하는 도중에 평가결과가 확정된 경우 나머지 평가 과정을 "생략"하는 것이 "단축 평가"이다.