Zakas½â´ðBaranovskiyµÄJavaScriptС²âÊÔ
×ªÔØ×Ô£ºhttp://hikejun.com/blog/?p=536
Zakas 1/22ÔÚtwitterÉÏ·ÖÏíÁËBaranovskiyµÄһƪÎÄÕ“So, you think you know JavaScript?
”£¨ÄãÈÏΪÄã¹»Á˽âjavascriptÂ𣩱êÌâºÜ½Ð°å¡£½á¹û5С¶Î´úÂë×öµÄÏ¡ÀﻩÀ²¡£
½ñÌìZakasרÃÅ׫ÎĽâ´ðÁËÕ⼸µÀÌ⣨http://www.nczonline.net/blog/2010/01/26/answering-baranovskiys-javascript-quiz/
£©¡£²»À¢ÊÇ´óʦ£¬ºÜÉî¿Ì¡£
µÚ1Ìâ: ÊÇ·ñÕæµÄÀí½âÉùÃ÷±äÁ¿
if (!(”a” in window)) {
var a = 1;
}
alert(a);
֪ʶµã£ºÒ»ÊDZäÁ¿ÉùÃ÷ºÍ³õʼ»¯ÊÇ·Ö¿ªµÄ¡£¶þÊÇJavascriptÒýÇæ½ö½öÊǰѱäÁ¿µÄÉùÃ÷Ìáµ½µ±Ç°scopeµÄ×îÇ°Ãæ½âÊÍ¡£ÈýÊÇËùÓÐÈ«¾Ö±äÁ¿¶¼ÊÇwindow¶ÔÏóµÄ³ÉÔ±¡£ËùÒÔÕâ¶Î´úÂëʵ¼ÊÊÇ£º
var a;
if (!(”a” in window)) {
a = 1;
}
alert(a);
´ð°¸¾ÍºÜÇå³þÁË£‘undefined’¡£
µÚ2Ì⣺ÊÇ·ñÕæµÄÀí½âÉùÃ÷function
var a = 1,
b = function a(x) {
x && a(–x);
};
alert(a);
ÉùÃ÷functionÖ»ÓÐÁ½ÖÖÒ»ÖÖÊÇ: functionÉùÃ÷
function a (x) {
// do something.
}
ÁíÒ»ÖÖÊÇ: function±í´ïʽ
var a = function (x) {
// do something.
}
functionÉùÃ÷±ØÐëÓз½·¨Ãû£¬¶ø³öÏÖÔÚ±í´ïʽÀïµÄ·½·¨Ãû¶¼»á±»ºöÂÔ¡£µÚ¶þÖÖfunction±í´ïʽ¾ÍÊÇÒ»ÖÖ¸³Öµ±í´ïʽ£¬ÀïÃæµÄ·½·¨Ãû½«±»ºöÂÔ¡£ÔÎĻظ´ÖÐÌáµ½µÄÕâÆªÎÄÕ£¨http://yura.thinkweb2.com/named-function-expressions/
£©Ð´µÄºÜÏêϸ¡£
µÚ3Ì⣺ÊÇ·ñÀí½âfunctionÉùÃ÷µÄÓÅÏȼ¶
function a(x) {
return x * 2;
}
var a;
alert(a);
functionÉùÃ÷»á¸²¸ÇµôͬÃûµÄ±äÁ¿ÉùÃ÷£¬ÎÞÂÛ±äÁ¿ÉùÃ÷ÔÚǰ»¹ÊÇÔÚºó¡£µ«µ±±äÁ¿¸³Öµºó£¬function¾ÍÎÞЧÁË¡£È磺
var a = 1;
function a(x) {
return x * 2;
}
alert(a); //½á¹ûÊÇ 1
µÚ4Ì⣺¿¼ÊÇ·ñÀí½â²ÎÊý¶ÔÏó
function b(x, y, a) {
arguments[2] = 10;
alert(a);
}
b(1, 2, 3);
´ð°¸ÊÇ10¡£argumentsÏ൱ÓÚ¶ÔÓ¦x, y, a½¨Á¢µÄ¸±±¾£¬JavascriptÒýÇæÊµÏÖËüÃǶÔÓ¦µÄֵͬ²½¡£ËùÒÔarguments[2]µÄÖµ±ä»¯ÁË£¬aÒ²ËæÖ®±ä»¯¡£
µÚ5Ì⣺ÊÇ·ñÕæµÄÀí½âcall·½·¨
function a() {
alert(this);
}
a.call(null);
ECMA262µÚ3°æ±ê×¼ÀïÓÐÃ÷ȷ˵Ã÷£º
“If thisArg is null or undefined, the called function is passed the
global object as the this value. Otherwise, the called function is
passed ToObject(thisArg) as the this value.”
¿É¼û£¬Èç¹ûcallµÄ
Ïà¹ØÎĵµ£º
flex ºÍjavascript»¥Ïàµ÷Óá£
Ò»¡¢flex µ÷ÓÃjavascript
Ö»ÐèʹÓþ²Ì¬µÄExternalInterface.call¾Í¿ÉÒÔÁË¡£
call ·½·¨ÖÁÉÙÒªÇóÒ»¸ö²ÎÊý£¬¾ÍËùµ÷ÓöÊýµÄÃû³Æ¡£
Ò²¿ÉÒÔ´«µÝ²ÎÊý¡£
È磺
ExternalInterface.call("alert","hello");
"hello"¾ÍÊÇ×÷Ϊalertµ ......
JavaScript¹ýÂËÊý×éÖÐÖØ¸´ÔªËØ
ÎÒÊǸöJS³õѧÕߣ¬ÎÒ¼´½«ÒªËµµÄÕâ¸ö·½·¨Ò²ÊǴ󲿷ÖÈ˶¼ÄÜÏëµ½µÄ£º
´Ó¾ÉÊý×éÖÐÈ¡ÔªËØ£¬Ò»¸ö¸öÌí¼Óµ½ÐÂÊý×éÖУ¬ÔÚÌí¼ÓµÄʱºò£¬ÓëÌí¼Ó¹ýµÄÔªËØ±È½Ï£¬Èç¹ûÏàͬ£¬Ôò²»Ìí¼Ó¡£
Ê×Ïȶ¨ÒåÁ½¸öÊý×飺
Code
var arrA = new Array(1,23,43,64,1,23,5,8,3,5,9);
var arrB&n ......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>test</title>
<mce:style type="text/css"><!--
.table_back{width:480px;height:480px;border-bottom:1px solid bla ......
javascript parseInt is broken
I was debugging some strange errors in a date conversion function I was writing, and I stumbled upon something that amazed me... a strange bug in parseInt
>>>parseInt('06')
6
>>>parseInt('07')
7
>>>parseInt('08')
0
>>>parseInt ......