JavaScriptÖеÄJSON
JavaScriptÖеÄJSON
×÷ÕߣºDouglas Crockford
ÔÎÄÍøÖ·£ºhttp://www.json.org/js.html
ÒëÕߣº¿É°®µÄºï×Ó
JavaScriptÕâÖÖ±à³ÌÓïÑÔÊ×ÒªµÄÄ¿µÄÊÇΪNetscape NavigatorÌṩһÖÖÒ³Ãæ½Å±¾ÓïÑÔ¡£ËüÈÔ±»ÆÕ±éµÄÈÏΪÊÇJavaµÄÒ»¸ö×Ó¼¯£¬µ«ÊÂʵ²¢·ÇÈç´Ë¡£ËüÊÇÒ»ÖÖÓï·¨ÀàËÆcÓïÑÔ²¢ÇÒÖ§³ÖÃæÏò¶ÔÏóµÄScheme-likeÓïÑÔ¡£JavaScriptʹÓÃÁËECMAScriptÓïÑԹ淶µÚÈý°æ½øÐÐÁ˱ê×¼»¯¡£
JSONÊÇJavaScriptÃæÏò¶ÔÏóÓï·¨µÄÒ»¸ö×Ó¼¯¡£ÓÉÓÚJSONÊÇJavaScriptµÄÒ»¸ö×Ó¼¯£¬Òò´ËËü¿ÉÇåÎúµÄÔËÓÃÓÚ´ËÓïÑÔÖС£
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
ÉÏÃæµÄʾÀý£¬´´½¨ÁËÒ»¸ö°üÀ¨µ¥¶À³ÉÔ±”bindings”µÄ¶ÔÏ󣬴˳ÉÔ±°üÀ¨Ò»¸öº¬ÓÐÈý¸ö¶ÔÏ󣨔ircEvent”, “method”, Óë “regex”£©µÄÊý×é
³ÉÔ±¿ÉÒÔͨ¹ý.»òÕßϱê²Ù×÷·û¼ìË÷¡£
myJSONObject.bindings[0].method // "newURI"
ΪÁ˽«JSONÎı¾×ª»»Îª¶ÔÏ󣬿ÉÒÔʹÓÃeval()º¯Êý¡£eval()º¯Êýµ÷ÓÃJavaScript±à¼Æ÷¡£ÓÉÓÚJSONÊÇJavaScriptµÄ×Ó¼¯£¬Òò´Ë±àÒëÆ÷½«ÕýÈ·µÄ½âÎöÎı¾²¢²úÉú¶ÔÏó½á¹¹¡£Îı¾±ØÐëÀ¨ÔÚÀ¨ºÅÖбÜÃâ²úÉúJavaScriptµÄÓï·¨ÆçÒå¡£
var myObject = eval('(' + myJSONtext + ')');
evalº¯Êý·Ç³£¿ìËÙ¡£Ëü¿ÉÒÔ±àÒëÖ´ÐÐÈκÎJavaScript³ÌÐò£¬Òò´Ë²úÉúÁ˰²È«ÐÔÎÊÌâ¡£µ±Ê¹ÓÿÉÐÅÈÎÓëÍêÉÆµÄÔ´´úÂëʱ²Å¿ÉÒÔʹÓÃevalº¯Êý¡£ÕâÑù¿ÉÒÔ¸ü°²È«µÄʹÓÃJSON½âÎöÆ÷¡£Ê¹ÓÃXMLHttpRequestµÄwebÓ¦Óã¬Ò³ÃæÖ®¼äµÄͨѶֻÔÊÐíͬԴ£¬Òò´ËÊÇ¿ÉÒÔÐÅÈεġ£µ«ÕâÈ´²»ÊÇÍêÉÆµÄ¡£Èç¹û·þÎñÆ÷ûÓÐÑϽ÷µÄJSON±àÂ룬»òÕßûÓÐÑϸñµÄÊäÈëÑéÖ¤£¬ÄÇô¿ÉÄÜ´«ËͰüÀ¨Î£Ïսű¾µÄÎÞЧJSONÎı¾¡£evalº¯Êý½«Ö´ÐжñÒâµÄ½Å±¾¡£
ʹÓÃJSON½âÎöÆ÷¿ÉÒÔ·ÀÖ¹´ËÀàʼþ¡£JSON½âÎöÆ÷Ö»ÄܱæÊ¶JSONÎı¾£¬¾Ü¾øËùÓнű¾¡£ÌṩÁ˱¾µØJSONÖ§³ÖµÄä¯ÀÀÆ÷µÄJSON½âÎöÆ÷½«Ô¶¿ìÓÚevalº¯Êý¡£Ô¤¼ÆÎ´À´µÄECMAScript±ê×¼½«Ö§³Ö±¾µØJSON¡£
var myObject = JSON.parse(myJSONtext, reviver);
Ò»¸öÌæ»»º¯Êý£¨reviver function£©×öΪ¿ÉÑ¡²ÎÊý±»×îÖÕ½á¹ûµÄÿһ¼¶µÄ¼ü£¨key£©ÓëÖµ£¨value£©µ÷Óᣠÿ¸öÖµ¶¼½«±»Ìæ»»º¯ÊýµÄÖµ´úÌæ¡£Õâ¿ÉÒÔÓÃÀ´½«Ò»°ãµÄÀà¸Ä±ä³ÉαÀàµÄʵÀý£¬»òÕß½«ÈÕÆÚ×Ö·û´®×ª±äΪÈÕÆÚ¶
Ïà¹ØÎĵµ£º
JavaScriptµÄÕýÔò±í´ïʽ֧³Ö²¼¶û²Ù×÷£¬³ýÁË×÷Ϊ Ñ¡ÔñµÄ“²¼¶û»ò”²Ù×÷Ö®Í⣬ÕýÔò±í´ïʽ»¹Ö§³Ö·Ö×éºÍÒýÓÃ
¡£ÆäʵѡÔñ¡¢·Ö×éºÍÒýÓõÄ×÷Ó÷ֱðΪ£ºÖ¸¶¨Ñ¡ÔñÏî¡¢¶Ô×Ó±í´ïʽ·Ö×éºÍÒýÓà ǰһ×Ó±í´ïʽµÄÌØÊâ×Ö·û¡£
ÕýÔò±í´ïʽµÄÑ¡Ôñ£º
ËùνѡÔñ¼´ÔÚ¶à¸öÌõ¼þÀïÃæÑ¡ÔñÒ»¸ö£¬±ÈÈç˵ÂôË®¹ûµÄ´óү˵ËÍÄã¸öË®¹û£¬Äã¿ÉÒÔÑ¡Ô ......
JavaScriptÕýÔò±í´ïʽµÄÓ÷¨
ÕýÔò±í´ïʽÊÇÒ»ÖÖ¿ÉÒÔÓÃÓÚģʽƥÅäºÍÌæ»»µÄÇ¿´ó¹¤¾ß£¬ÔںܶàÓïÑÔÖж¼¿ÉÒÔÓ¦Óá£JavaScript¶ÔÕýÔò±í´ïʽÌṩÁ˺ܺõÄÖ§³Ö£¬
JavascriptÖÐÓÐÒ»¸öÕýÔò±í´ïʽ¶ÔÏóRegExp¡£¸Ã¶ÔÏóÌṩÁË´óÁ¿µÄÊôÐԺͷ½·¨À´´¦ÀíÕýÔò±í´ïʽ£¬Í¬Ê±£¬String¶ÔÏóÒ²ÌṩÁËÏà¹ØµÄ·½·¨À´
´¦ÀíÕýÔò±í´ïʽ£¬ÔÚWebÓ¦ÓÃÖУ¬¾³ ......
ÏÂÃæÁ½¸ö·½·¨ÊµÏÖÁËÊý×éÖÐÈ¥µô Ç°Ãæ »òÕß ºóÃæµÄ ÖØ¸´Ïî
È¥µôÇ°ÃæµÄÖØ¸´Ïî·½·¨ °Ñarray [1, 2, 3, 1, 4, 5]È¥µôÇ°ÃæÖØ¸´Ïî µÃµ½ [2, 3, 1, 4, 5].
function unique(a)
{
var r = new Array();
o:for(var i = 0, n = a.length; i < n; i++) {
for(var x = i + 1 ; x < n; x++)
{
......
1 JavaScriptÊý×é¼ò½é
JavaScriptÊý×éÊÇÒ»ÖÖ°üº¬ÒѱàÂëµÄÖµµÄ¸´ºÏÊý¾Ý¡£Êý×éÇø±ðÓÚ¹ØÁªÊý×飬¹ØÁªÊý×éÊǽ«ÖµºÍ×Ö·û´®¹ØÁªÔÚÒ»Æð£¬¶øÊý×éÊǽ«ÖµºÍ·Ç¸ºÕûÊý¹ØÁªÔÚÒ»Æð¡£
Êý×éÊǶÔÏó(¿ÉÀûÓÃtypeofÔËËã·û)¡£
2   ......
1. oncontextm ½«³¹µ×ÆÁ±ÎÊó±êÓÒ¼ü
<table border oncontextmenu=return(false)><td>no</table> ¿ÉÓÃÓÚTable
2. <body onselectst> È¡Ïûѡȡ¡¢·ÀÖ¹¸´ÖÆ
3. ²»×¼Õ³Ìù
4. ·ÀÖ¹¸´ÖÆ
5. <link > IEµØÖ·À¸Ç°»»³É×Ô¼ºµÄͼ±ê
6. <link   ......