당신의 의견으로는, 당신이 경험 한 가장 놀랍고, 이상하고, 이상하거나 정말로 “WTF”언어 기능은 무엇입니까?
답변 당 하나의 기능 만 사용하십시오.
답변
C에서는 배열을 다음과 같이 색인화 할 수 있습니다.
a[10]
이것은 매우 일반적입니다.
그러나 덜 알려진 형태 (실제로 작동합니다!)는 다음과 같습니다.
10[a]
이는 위와 동일 함을 의미합니다.
답변
자바 스크립트에서 :
'5' + 3 gives '53'
이므로
'5' - 3 gives 2
답변
JavaScript에서 다음 구성
return
{
id : 1234,
title : 'Tony the Pony'
};
returns 는 개행 후의 부적절한 암시 적 세미콜론 삽입으로 인한 구문 오류 undefined
return
입니다. 그래도 다음과 같이 작동합니다.
return {
id : 1234,
title : 'Tony the Pony'
};
더 나쁜 것은, 이것도 잘 작동합니다 (적어도 Chrome에서는).
return /*
*/{
id : 1234,
title : 'Tony the Pony'
};
구문 오류가 발생하지 않고 자동으로 실패하는 동일한 문제의 변형이 있습니다.
return
2 + 2;
답변
자바 스크립트 진리표 :
'' == '0' // false
0 == '' // true
0 == '0' // true
false == 'false' // false
false == '0' // true
false == undefined // false
false == null // false
null == undefined // true
" \t\r\n" == 0 // true
출처 : Doug Crockford
답변
C와 C ++의 3 가지 그래프.
int main() {
printf("LOL??!");
}
LOL|
trigraph가로 ??!
변환되어 인쇄 됩니다 |
.
답변
자동 권투와 Java의 정수 캐시로 재미있게 즐기십시오.
Integer foo = 1000;
Integer bar = 1000;
foo <= bar; // true
foo >= bar; // true
foo == bar; // false
//However, if the values of foo and bar are between 127 and -128 (inclusive)
//the behaviour changes:
Integer foo = 42;
Integer bar = 42;
foo <= bar; // true
foo >= bar; // true
foo == bar; // true
설명
Java 소스 코드를 살짝 살펴보면 다음과 같은 결과가 나타납니다.
/**
* Returns a <tt>Integer</tt> instance representing the specified
* <tt>int</tt> value.
* If a new <tt>Integer</tt> instance is not required, this method
* should generally be used in preference to the constructor
* {@link #Integer(int)}, as this method is likely to yield
* significantly better space and time performance by caching
* frequently requested values.
*
* @param i an <code>int</code> value.
* @return a <tt>Integer</tt> instance representing <tt>i</tt>.
* @since 1.5
*/
public static Integer valueOf(int i) {
if (i >= -128 && i <= IntegerCache.high)
return IntegerCache.cache[i + 128];
else
return new Integer(i);
}
참고 : 속성으로 설정하지 않으면 IntegerCache.high
기본값은 127
입니다.
자동 복싱에서 발생하는 일은 명시 적으로 작성하지 않는 한 foo와 bar 모두 동일한 정수 객체를 캐시에서 검색하는 것입니다. 예를 들어 foo = new Integer(42)
, 참조 평등을 비교할 때는 false가 아니라 true입니다. 정수 값을 비교하는 올바른 방법은.equals;
답변
닐 프레이저 인용 (그 페이지의 끝 부분을보십시오)
try {
return true;
} finally {
return false;
}
(Java에서는 작동하지만 JavaScript와 Python에서는 동작이 분명히 동일합니다). 결과는 독자에게 연습으로 남습니다.
편집 : 주제에 관한 한 다음 사항도 고려하십시오.
try {
throw new AssertionError();
} finally {
return false;
}