ããæ©ãäœãããããšã¯ãããŸãããã€ã³ã¿ãŒãããã®ãã¯ã€ãããŒãžãããã£ãŠãå°æ¥ã®ããã«èªããã®ãæ¢ããŠãèå³æ·±ãèšäºã1ã€ãããŸããã èªæžã¯ã掻åã®çš®é¡ã圢åŒãããã³å
容ãè¿ãããšãèãããšãéåžžã«èå³æ·±ãããšãããããŸããã
確ãã«ãç§ã¯æ瀺ãããè³æã§èè
ã«çŽæ¥åæããŸããã§ãããããã«ãå€ãã®åºæ¬çãªããšã«è§ŠããŸããã圌女ã¯äººå£ã®æ³šç®ã«å€ãããšæããŸãã-èªãã®ãé¢åã§ãããäžå¿
èŠã«ã¢ã¬ã³ãžãšã±ãŒã¹ãç°¡æœã«ãç°¡æœã«å¥œã人æåŠã
åœç¶ã®ããšãªãããèæžã®ããã«ãç§ã¯ããã宣èªããããšã¯å§ããªãã®ã§ãåè¿°ã®ãã¹ãŠã¯æ±ºããŠç©¶æ¥µã®çå®ã§ã¯ãããŸããã ãããã誰ããç©äºãæ°ãã芳ç¹ããäœã§ããããæããã«ãã誰ããèªåã®ç·æ¥äºæ
ãè¡šçŸããŠæ¹å€ããã§ãããïŒãFt fi fiãfa fa faïŒã
ããããæåã«ç§ã«åæã«æåã«ããããšã¯...
æåã®ãã¬ãŒã ãå
¥é
ãåç¥ã®ããã«ãJavaScriptã¯äžçã®ä»ã®ããã°ã©ãã³ã°èšèªã®äžã§ããã³ããŒã¯ã³ã§ã
ãNodeJSãš
Wakandaã䜿çšãããµãŒããŒãµã€ãéçºåãã«ã
PhoneGapãš
Appceleratorã䜿çšããŠãWebçšã®èšèªãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ïŒçŽãããã³ä»ã®å€ãã®çšéã ããã¯ãããã°ã©ãã³ã°ã®äžçã®å€ãã®åå¿è
ã«ãšã£ãŠã®åºçºç¹ã§ããããŸãããã©ãŠã¶ã§ç°¡åãªã¢ã©ãŒãã衚瀺ãããããããå¶åŸ¡ããããã«äœ¿çšã§ããŸãïŒ
nodebot ã
nodruinoã䜿çšïŒã
JavaScriptã®åªããç¥èãæã¡ãç解å¯èœã§çç£æ§ã®é«ãã³ãŒããäœæããéçºè
ã¯ãæ±äººåžå Žã§æã人æ°ããããŸãã
ãã®èšäºã§ã¯ããã¹ãŠã®JavaScriptéçºè
ããã©ãŠã¶ãŒã®å
éšïŒãã©ãŠã¶ãŒ/ãšã³ãžã³ïŒãããã³ãµãŒããŒåŽã®JavaScriptã€ã³ã¿ãŒããªã¿ãŒïŒãµãŒããŒåŽã®JavaScriptã€ã³ã¿ãŒããªã¿ãŒïŒã«é¢ä¿ãªãç¥ã£ãŠããã¹ãããŸããŸãªããªãã¯ãšãã©ã¯ãã£ã¹ã玹ä»ããããšæããŸãã
ãã¹ãŠã®ã³ãŒãäŸã¯ãGoogle ChromeããŒãžã§ã³30ã§ãã¹ãæžã¿ã§ãã
V8 JavaScriptãšã³ãžã³ïŒV8 3.20.17.15ïŒã䜿çšããŸãã2çªç®ã®ãã¬ãŒã ãæçã§å©èšç
1-
å€æ°ã«å€ãå²ãåœãŠããšãã¯ã `var`ããŒã¯ãŒããèŠããŠãããŠãã ãã
åããŠïŒä»¥åã«å®£èšãããŠããªãå€æ°ãå²ãåœãŠããšããã®å€æ°ãã°ããŒãã«ã¹ããŒã¹ã«äœæãããŸãã ãããé¿ããŠãã ããã
ïŒæ³š-å€æ°ãäœæãããšã次ã®ããšãã§ãããšèè
ã瀺åãã
ããŒã¯ãŒããå¿ããŠãããããã«è¿œå ã®å€æ°ãäœæããŸã
ã°ããŒãã«ã¹ããŒã¹ãŠã£ã³ããŠïŒ
2-
ã==ãã®ä»£ããã«ã===ãã䜿çšããŸãã`==ïŒïŒ=ïŒ`ã䜿çšãããšãå¿
èŠã«å¿ããŠåå€æãå®è¡ãããŸãã äžæ¹ã `===`ã¯ãã®ãããªå€æãè¡ããŸããã äžãããã
æŒç®åã¯å€ã ãã§ãªãåãæ¯èŒããŸããããã¯ã `==`ãããéã解決ããŸãã äŸïŒ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [10] === 10
3-
``æªå®çŸ©ãnullã0ãfalseãNaNã '' ``ïŒäžèšã®ãã¹ãŠã¯åžžã«è«çåŒã®åã§ãã
4-
`;`ãå¿ããªãã§ãã ããïŒåŒãå®æãããããã« `;`ã䜿çšããã®ã¯è¯ãç¿æ
£ã§ãã JavaScriptããŒãµãŒãæ¿å
¥ãããããã¹ãããããŠãèŠåã¯è¡šç€ºãããŸããã
5-
ã³ã³ã¹ãã©ã¯ã¿ãŒãä»ãããªããžã§ã¯ãïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function Person(firstName, lastName){ this.firstName = firstName; this.lastName = lastName; } var Saad = new Person("Saad", "Mousliki"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6-
ãtypeofãinstanceOfãconstructorãã䜿çšãããšãã¯æ³šæããŠãã ããïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var arr = ["a", "b", "c"]; typeof arr;
7-
èªå·±åŒã³åºãæ©èœã䜿çšããŸããå€ãã®å Žåãèªå·±åŒã³åºãå¿åé¢æ°ïŒIMFïŒãŸãã¯å³æåŒã³åºãé¢æ°åŒïŒIIFEïŒãšåŒã°ããŸãã ããã¯ãäœææã«ããã«èµ·åãããé¢æ°ã§ã次ã®åœ¢åŒããããŸãã
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (function(){
ïŒæ³š-ãã®æ®µèœã§ã¯ç¿»èš³ãå°é£ã ã£ãã®ã§ãå
ã®äœ¿çšæ³ããã€ãã£ãèšèªã®ãŸãŸã«ããŠãæ£ãã翻蚳ããæ¹æ³ãæ®ããŸãã
æ²ããããªããã·ã¢ã®ç²Ÿç¥ã«ãç§ã¯ç¥ããŸããã èè
ã¯ããã®æ¹æ³ã§ãå®çŸ©æã«å³åº§ã«åŒã³åºãå¿åé¢æ°å
ã«å®è£
ãé ãããšã瀺åããããšããŠãããšæããŸãïŒ
8-
ä»»æã®é
åå€ã®ååŸïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var items = [12,548,'a',2,5478,'foo',8852,'Doe',2145,119]; var randomItem = items[Math.floor(Math.random() * items.length)]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9-
ç¹å®ã®ç¯å²å
ã®ä»»æã®æ°ãååŸããïŒãã®äŸã¯ãäœãããã¹ãããããã«åœããŒã¿ãçæããå¿
èŠãããå Žåã«äœ¿çšã§ããŸããããšãã°ãæå°å€ãšæ倧å€ã®éã®çµŠäžã§ãã
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var x = Math.floor(Math.random() * (max - min + 1)) + min; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10-0ããæ倧ãŸã§ã®æ°å€é
åã®çæïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var numbersArray = [] , max = 100;
11-
ä»»æã®æåã»ããã®çæïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function generateRandomAlphaNum(len) { var rdmstring = ""; for( ; rdmString.length < len; rdmString += Math.random().toString(36).substr(2)); return rdmString.substr(0, len); } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12-
é
åã®ã·ã£ããã«ïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411]; numbers = numbers.sort(function(){ return Math.random() - 0.5}); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13-
æååã® `trimïŒïŒ`é¢æ°ïŒJavaãCïŒãPHPãããã³ç©ºçœãåé€ããä»ã®å€ãã®ããã°ã©ãã³ã°èšèªã§å©çšã§ããå€å
žç㪠`trimïŒïŒ`é¢æ°ã¯ãJavaScriptã«ã¯å«ãŸããŠããŸããã ãã ããããã `String`ãªããžã§ã¯ãã«è¿œå ã§ããŸãïŒ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g, ""); }; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ïŒæ³š-æµæããããšã¯ã§ããŸããã§ããããèè
ããã®ææ³ã䜿çšããŠããã®ã¯å¥åŠã§ãã
`trimïŒïŒ`ããã§ã«JavaScriptã«ãããã®ããã«ïŒ
14-ããé
åãå¥ã®é
åã«è¿œå ããŸãã ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var array1 = [12 , "foo" , {name "Joe"} , -2458]; var array2 = ["Doe" , 555 , 100]; Array.prototype.push.apply(array1, array2); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15-
`arguments`ãªããžã§ã¯ããé
åã«å€æããŸãïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var argArray = Array.prototype.slice.call(arguments); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
16-
æå®ãããåŒæ°ãæ°å€ã§ãããã©ããã確èªããŸãã ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function isNumber(n){ return !isNaN(parseFloat(n)) && isFinite(n); } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17-
æå®ãããåŒæ°ãé
åãã©ããã確èªããŸãã ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function isArray(obj){ return Object.prototype.toString.call(obj) === '[object Array]' ; } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`toStringïŒïŒ`ã¡ãœããããªãŒããŒã©ã€ããããå Žåããã®ããªãã¯ã䜿çšãããšçµæãæåŸ
ã©ããã«ãªããªãããšã«æ³šæããŠãã ããã
ãŸãã¯æŽ»çšããŠãã ãã...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Array.isArray(obj);
å€ãã®ãã¬ãŒã ã§äœæ¥ããŠããªãå Žåã¯ã `instanceof`ã䜿çšããããšãã§ããŸãã ãã ããå€ãã®ã³ã³ããã¹ãã䜿çšããå Žåã¯ã
ééã£ãçµæãåŸãïŒ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var myFrame = document.createElement('iframe'); document.body.appendChild(myFrame); var myArray = window.frames[window.frames.length-1].Array; var arr = new myArray(a,b,10);
18-
æ°å€é
åã®æ倧å€ãæå°å€ãååŸããŸãã ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411]; var maxInNumbers = Math.max.apply(Math, numbers); var minInNumbers = Math.min.apply(Math, numbers); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19-é
åã空ã«ããŸãïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var myArray = [12 , 222 , 1000 ]; myArray.length = 0;
20-
é
åããåé€ããããã« `delete`ã䜿çšããªãã§ãã ããïŒé
åãããšã³ããªãåé€ããã«ã¯ã `delete`ã®ä»£ããã«` split`ã䜿çšããŸãã ãdeleteãã䜿çšããŠãåé€ãããŸããããèŠçŽ ã¯ãundefinedãã«çœ®ãæããããŸãã
代ããã«...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var items = [12, 548 ,'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' ,2154 , 119 ]; items.length;
ããã䜿çšããŠ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var items = [12, 548 ,'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' ,2154 , 119 ]; items.length;
ãã ãããªããžã§ã¯ãã®ããããã£ãåé€ããã«ã¯ `delete`ã䜿çšããå¿
èŠããããŸãã
21-
`length`ã䜿çšããŠé
åãããªã ããïŒç©ºã®é
åã䜿çšããåã®äŸã®ããã«ãé
åãããªãã³ã°ããã«ã¯ã `length`ããããã£ã䜿çšããŸãã
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var myArray = [12 , 222 , 1000 , 124 , 98 , 10 ]; myArray.length = 4;
ããŒãã¹ãé
åã®é·ãã®å€ãçŸåšã®å€ããã倧ããèšå®ãããšãé
åã®é·ããå€æŽãããæ°ããå€ãèšå®ãããŸã
ãæªå®çŸ©ããšããŠã é
åã®é·ãããããã£ã¯ãèªã¿åãå°çšã§ã¯ãããŸããã
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ myArray.length = 10;
22-æ¡ä»¶åŒã«è«ççãªãAND / ORãã䜿çšããïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var foo = 10; foo == 10 && doSomething();
è«ççãªãORãã¯ãé¢æ°ã®åŒæ°ã®ããã©ã«ãå€ãèšå®ããããã«ã䜿çšã§ããŸãã
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Function doSomething(arg1){ Arg1 = arg1 || 10;
23-
`mapïŒïŒ`ã¡ãœããã䜿çšããŠé
åãã«ãŒãããŸãïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var squares = [1,2,3,4].map(function (val) { return val * val; });
24-
æ°å€ãå°æ°ç¹ä»¥äžNæ¡ã«äžžããŸãïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var num =2.443242342; num = num.toFixed(4);
25-
æµ®åå°æ°ç¹ã®åé¡ïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0.1 + 0.2 === 0.3
ãªããããèµ·ãã£ãŠããã®ã§ããïŒ 0.1 + 0.2ã¯0.30000000000000004ã«çžåœããŸãã ç¥ã£ãŠããã¹ãããšã¯ãå
éšã«æµ®åå°æ°ç¹ãæã€JavaScriptã®ãã¹ãŠã®æ°å€ã¯ãIEEE 754æšæºã«åŸã£ãŠããã€ããªåœ¢åŒã®64ããããšããŠè¡šããããšããããšã§ãã
ããã«ãµã³ãã«ãå¿
èŠãªå Žåã¯ããã®
ããã°ãã芧ãã ããã
ãã®ãããªåé¡ãåé¿ããã«ã¯ã `toFixedïŒïŒ`ããã³ `toPrecisionïŒïŒ`ã¡ãœããã䜿çšã§ããŸãã
26-
for-inã«ãŒãã䜿çšãããšãã«ãªããžã§ã¯ãã®ããããã£ã確èªããŸãããã®ã³ãŒãäŸã䜿çšããŠããããã¿ã€ããªããžã§ã¯ãã®ããããã£ã®ç¹°ãè¿ããåé¿ã§ããŸãã
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (var name in object) { if (object.hasOwnProperty(name)) {
27-ã³ã³ãæŒç®åïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var a = 0; var b = ( a++, 99 ); console.log(a);
28-èšç®ãŸãã¯ã¯ãšãªã«å¿
èŠãªå€æ°ããã£ãã·ã¥ããŸããäŸãšããŠjQueryã»ã¬ã¯ã¿ãŒã䜿çšããŠãçµæïŒDOMèŠçŽ ïŒããã£ãã·ã¥ã§ããŸãã
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var navright = document.querySelector('#right'); var navleft = document.querySelector('#left'); var navup = document.querySelector('#up'); var navdown = document.querySelector('#down'); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29-
isFiniteïŒïŒ `ã«éä¿¡ããåã«åŒæ°ã確èªããŠãã ããïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ isFinite(0/0) ;
30-
é
åå
ã®è² ã®ã€ã³ããã¯ã¹ãé¿ããŸãïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var numbersArray = [1,2,3,4,5]; var from = numbersArray.indexOf("foo") ;
`indexOf`ã«æž¡ãããåŒæ°ãè² ã§ãªãããšã確èªããŠãã ããã
31-ã·ãªã¢ã«åãšéã·ãªã¢ã«åïŒJSONã®å ŽåïŒïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var person = {name :'Saad', age : 26, department : {ID : 15, name : "R&D"} }; var stringFromPerson = JSON.stringify(person); var personFromString = JSON.parse(stringFromPerson); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32-
`evalïŒïŒ`ãŸã㯠`Function`ã³ã³ã¹ãã©ã¯ã¿ãŒãé¿ããŸãïŒ`eval`ãŸãã¯` Function`ã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšãããšããœãŒã¹ã³ãŒããjavascriptãšã³ãžã³ã«ãã£ãŠå®è¡å¯èœãã¡ã€ã«ã«å€æããããã³ã«ãé«äŸ¡ãªæäœã«ãªããŸãã
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var func1 = new Function(functionCode); var func2 = eval(functionCode); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33-
ãwithãïŒè¯ããã®ïŒãé¿ããïŒãwithãã䜿çšãããšãã°ããŒãã«ç©ºéã§å€æ°ãå®çŸ©ãããŸãã å€æ°ã®ååãåãå Žåãå€ãæ¶å»ãããå¯èœæ§ããããããããã«ããç¹å®ã®åé¡ãçºçããŸãã
34-
é
åã®ãfor-inãã«ãŒããåé¿ããïŒä»£ããã«...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var sum = 0; for (var i in arrayNumbers) { sum += arrayNumbers[i]; } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...ããã¯è¯ãã§ã...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var sum = 0; for (var i = 0, len = arrayNumbers.length; i < len; i++) { sum += arrayNumbers[i]; } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ãããã«ãŒãæ§é ã®æåã®è¡šçŸã§ããããããiããšãlenãã®ããŒãã¹å²ãåœãŠã¯1åã ãè¡ãããŸãã ããã¯...ããé«éã§ã
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (var i = 0; i < arrayNumbers.length; i++) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ãªãã§ïŒ `arrayNumbers`é
åã®é·ãã¯ãã«ãŒãã®åå埩ã§èšç®ãããŸãã
35-
`setTimeoutïŒïŒ`ãš `setIntervalïŒïŒ`ã®æååã§ã¯ãªãé¢æ°ãæž¡ããŸãïŒæååã `setTimeoutïŒïŒ`ãŸã㯠`setIntervalïŒïŒ`ã«æž¡ããšãããã㯠`eval`ã䜿çšããã®ãšåãæ¹æ³ã§åŠçãããŸããããã¯é
ãã§ãã
代ããã«...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ setInterval('doSomethingPeriodically()', 1000); setTimeOut('doSomethingAfterFiveSeconds()', 5000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...䜿çš...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ setInterval(doSomethingPeriodically, 1000); setTimeOut(doSomethingAfterFiveSeconds, 5000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
36-
ã·ãªãŒãºfrom` if / else`ã®ä»£ããã« `switch / case`ã䜿çšïŒ3ã€ä»¥äžã®æ¡ä»¶ãããå Žåã¯ããswitch / caseãã䜿çšãããšé«éã§ãã³ãŒããæŽçããã®ã«é©ããŠããŸãã ãããé¿ãã
10åãè¶
ããæ¡ä»¶åŒãããå Žåã®åŒã
37-
æ°å€ç¯å²ã§ `switch / case`åŒã䜿çšããŸãïŒæ°å€ç¯å²ã§ãswitch / caseãåŒã䜿çšãããšã次ã®ããªãã¯ãå¯èœã«ãªããŸãã
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function getCategory(age) { var category = ""; switch (true) { case isNaN(age): category = "not an age"; break; case (age >= 50): category = "Old"; break; case (age <= 20): category = "Baby"; break; default: category = "Young"; break; }; return category; } getCategory(5);
38-
ãããã¿ã€ããæå®ããããªããžã§ã¯ãã§ãããªããžã§ã¯ããäœæããŸããé¢æ°ã®åŒæ°ã§æž¡ããããªããžã§ã¯ãããããã¿ã€ããšãããªããžã§ã¯ããäœæããé¢æ°ãäœæããããšãã§ããŸã...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function clone(object) { function OneShotConstructor(){}; OneShotConstructor.prototype= object; return new OneShotConstructor(); } clone(Array).prototype ;
39-
HTMLãšã¹ã±ãŒããŒïŒ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function escapeHTML(text) { var replacements= {"<": "<", ">": ">","&": "&", "\"": """}; return text.replace(/[<>&"]/g, function(character) { return replacements[character]; }); } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40-
ã«ãŒãå
ã§ãtry-catch-finallyãã䜿çšããªãã§ãã ããïŒãtry-catch-finallyãã¯ãäŸå€ãã¹ããŒãããŠå€æ°ã«ãã€ã³ãããããã³ã«ãçŸåšã®å®è¡ã¹ããŒã¹ã«æ°ããå€æ°ãäœæããŸãã
代ããã«...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var object = ['foo', 'bar'], i; for (i = 0, len = object.length; i <len; i++) { try {
...ããã䜿çšããŠ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var object = ['foo', 'bar'], i; try { for (i = 0, len = object.length; i <len; i++) {
41-
`XMLHttpRequests`ã®é
延ãèšå®ããŸãïŒXHRã«æéããããããããšïŒããšãã°ããããã¯ãŒã¯ã®åé¡ïŒæ¥ç¶ã倱ãããå ŽåããããŸããåŒã³åºãã«ã¯ `setTimeoutïŒïŒ`ã䜿çšããŸã
XHRã
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var xhr = new XMLHttpRequest (); xhr.onreadystatechange = function () { if (this.readyState == 4) { clearTimeout(timeout);
ããŸããšããŠãåæAjaxãªã¯ãšã¹ããé¿ããå¿
èŠããããŸãã
42-
WebSocketã¿ã€ã ã¢ãŠãã«å¯ŸåŠããéåžžãæ¥ç¶ã確ç«ããããšããµãŒããŒã¯30ç§ééã¢ã¯ãã£ãã«ãªã£ãåŸãã¿ã€ã ã¢ãŠãã«ããæ¥ç¶ããªã»ããã§ããŸãã ãã¡ã€ã¢ãŠã©ãŒã«ã¯ãäžå®æéåŸãéã¢ã¯ãã£ãã®ããã«ã¿ã€ã ã¢ãŠãã«ããæ¥ç¶ããªã»ããããããšãã§ããŸãã
ãã®åé¡ã¯ã空ã®ã¡ãã»ãŒãžããµãŒããŒã«éä¿¡ããããšã§è§£æ±ºã§ããŸãã ãããè¡ãã«ã¯ã2ã€ã®é¢æ°ãã³ãŒãã«è¿œå ããå¿
èŠããããŸãã1ã€ã¯æ¥ç¶ããµããŒããããã1ã€ã¯ãã®ãµããŒãããã£ã³ã»ã«ããŸãã
ãã®ããªãã¯ã䜿çšããŠãã¿ã€ã ã¢ãŠãã管çããŸãã
`timerID`ãè¿œå ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var timerID = 0; function keepAlive() { var timeout = 15000; if (webSocket.readyState == webSocket.OPEN) { webSocket.send(''); } timerId = setTimeout(keepAlive, timeout); } function cancelKeepAlive() { if (timerId) { cancelTimeout(timerId); } } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
webSocketã® `onOpenïŒïŒ`ã¡ãœããã®æåŸã« `keepAliveïŒïŒ`ãè¿œå ããå¿
èŠããããŸã
æ¥ç¶ãš `cancelKeepAliveïŒïŒ`ã `onCloseïŒïŒ`ã¡ãœããã®æåŸã«è¿œå ããŸãã
43-ããªããã£ãã¯é¢æ°åŒã³åºããããé«éã§ããããšãå¿ããªãã§ãã ãããVanillaJSã掻çšããããšãã°ã代ããã«...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var min = Math.min(a,b); A.push(v); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...ããã䜿çšããŠ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var min = a < b ? ab; A[A.length] = v; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44-ã³ãŒãã®ãã©ãŒããããšã¹ã¿ã€ã«ã®ããŒã«ã䜿çšããããšãå¿ããªãã§ãã ããã
ã³ãŒããæå¹ã«ãªãåã«ãJSLintãšæå°åïŒããšãã°ãJSMinïŒã䜿çšããŸãã45-
JavaScriptã¯åçŽã«shiiiikaaarenïŒ JavaScriptãåŠã¶ã®ã«æé©ãªãªãœãŒã¹ã§ãããããã«
åœç¶ã®ããšãªãããå€ãã®ãã³ããããªãã¯ãããã³ãã©ã¯ãã£ã¹ããããŸãã ãããã£ãŠãè¿œå ãããã®ãããå Žåã¯ããã£ãŒãããã¯ãååŸãããã調æŽãè¡ããŸã-ã³ã¡ã³ããèšå
¥ããŸãã
åç
§è³æ
ãã®èšäºãæžããšãã¯ã³ãŒãäŸã䜿çšããŸããããä»ã®èšäºããã©ãŒã©ã ãããã³ããåŸãäŸããããŸãã
ãããŠããããç©èªã®çµããã§ãâŠã
誰ããããã®è³æã«æžãããŠè¿°ã¹ãããŠããããšãšã¯ç°ãªãé¢ä¿ããã€ããšãã§ããŸãã 圌ã¯ååã«è¯ãã£ãã®ãã質åãã©ãã»ã©æ·±ãæããã«ãããã®ããçµæãã«ããŒãããã®ããäŸãã©ãã»ã©è³¢ããŠé¢çœãã£ãã®ãã
翻蚳è
ãšããŠã®ç§ã®ä»äºã¯ã圌ãäžè¬åžæ°ã®ã·ããã¹ã®ä»äºãã沞ãèµ·ãã£ãŠããè¬æŒè
ã®æ³å»·ã«é£ããŠè¡ãããšã§ããã ãããŠããªã圌ããããç¹ã«å¿
èŠãšããŠããã®ã-誰ããèªåã§æ±ºããã
èè
ãšè©±ããã人ãã³ã¡ã³ããèªã-ãªã³ã¯ããã©ã£ãŠãã ããã å
ã®èšäºãã芧ãã ããã ç§ã®ãããããªã³ããŒãããªãã«å©çããããããå€ãã®æéãè²»ãããªãã£ãããšãé¡ã£ãŠããŸãã
ãæž
èŽããããšãããããŸããïŒ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
å
ã®ããã¹ãåæã®èè
ïŒSaad MuslikiïŒ
ããŒããŒãèŠã ïŒ
* 2013幎12æ23æ¥*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~