ÔÚÕâÆªÎÄÕÂÖУ¬ÎÒ½«·ÖÏíһЩJavaScript³£Óõļ¼ÇÉ£¬ÇÏÃźÍ×î¼Ñʵ¼ù¡£²»¹ÜJavaScript¿ª·¢ÕßÊÇʹÓÃÔÚä¯ÀÀÆ÷/ÒýÇæÉÏ»òÕß·þÎñÆ÷¶Ë£¨SSJS¡ª¡ªService
Side JavaScript£©JavaScript½âÊÍÆ÷ÉÏ£¬ÕâЩËûÃǶ¼ÊÇÓ¦¸ÃÖªÏþµÄ¡£
ÐèҪעÒâµÄÊÇ£¬ÎÄÕÂÖеĴúÂëÆ¬¶Î¾ùÊÇÔÚ×îеÄGoogle Chrome£¨°æ±¾ºÅ30£©ÉϲâÊÔ¹ý£¬ËüʹÓÃV8
JavaScriptÒýÇæ£¨V8 3.20.17.15£©¡£
1¡¢µÚÒ»¸ö¸ø±äÁ¿·ÖÅäֵʱ²»ÒªÍüÁËvar¹Ø¼ü×Ö¡£
·ÖÅäÖµ¸øÎ´¶¨ÒåµÄ±äÁ¿½«ÊǸñäÁ¿×Ô¶¯³ÉΪȫ¾Ö±äÁ¿£¬Ó¦¸Ã±ÜÃâÈ«¾Ö±äÁ¿¡£
2¡¢Ê¹ÓÃ===¶ø²»ÊÇ==
==£¨»ò!=£©²Ù×÷·ûÔÚÐèҪʱ»á×Ô¶¯×ª»»±äÁ¿ÀàÐÍ£¬¶ø===£¨»ò!==£©Ôò²»»áÖ´ÐÐÀàÐÍת»»¡£ÔÚ½øÐÐÖµºÍÀàÐͱȽϵÄʱºò£¬Ó¦Ê×ÏÈ¿¼ÂÇʹÓÃ===
[10] === 10 // is false [10] == 10 // is true '10' == 10 // is true '10' === 10 // is false [] == 0 // is true [] === 0 // is false '' == false // is true but true == "a" is false '' === false // is false |
3¡¢undefined¡¢null¡¢0¡¢false¡¢NaN¡¢¡¯¡¯£¨¿Õ×Ö·û´®£©¶¼±»ÊÓΪfalse¡£
4¡¢ÔÚÐÐβʹÓ÷ֺÅ
ÔÚÐÐβʹÓ÷ֺÅÊǺܺõÄʵ¼ù¡£Èç¹ûÄãÍüÁË£¬Ò²²»»áµÃµ½¾¯¸æ£¬ÒòΪ´ó¶àÊýÇé¿öÏÂJavaScript½âÊÍÆ÷»á²åÈë·ÖºÅµÄ¡£¸ü¶à¹ØÓÚÄãΪʲôҪʹÓ÷ֺŵÄϸ½Ú£¬¿ÉÒÔ¿´¿´´ËÎÄ£ºhttp://davidwalsh.name/javascript-semicolons.
5¡¢´´½¨¶ÔÏó¹¹Ô캯Êý
function Person(firstName, lastName){ this.firstName = firstName; this.lastName = lastName; } var Saad = new Person("Saad", "Mousliki"); |
6¡¢Ð¡ÐÄʹÓÃtypeof¡¢instanceofºÍconstructor
typeof£º²»ÒªÍüÁËtypeof null·µ»Øobject£¬¶ø´ó¶àÊý¶ÔÏó£¬typeof(Array,
Date, and others)Ò²½«·µ»Øobject
constructor£ºÄÚ²¿ÔÐÍÊôÐÔ£¬¿ÉÒÔ±»¸²¸Ç£¨¿ÉÒԲο¼£ºÓÖ̸ÔÐͶÔÏó£©
instanceof£ºJavaScriptµÄÒ»¸öÓÃÓÚ¼ì²é¹¹Ô캯ÊýµÄÔÐÍÁ´µÄ²Ù×÷·û
var arr = ["a", "b", "c"]; typeof arr; // return "object" arr instanceof Array // true arr.constructor(); //[] |
7¡¢´´½¨Ò»¸ö×ÔÖ´Ðк¯Êý
Õâ¸ö¾³£±»³ÆÎª×ÔÎÒµ÷ÓõÄÄäÃûº¯Êý»òÕßÁ¢¼´µ÷Óõĺ¯Êý±í´ïʽ£¨IIFE£©¡£µ±Äã´´½¨Ëüʱ£¬Ëü»á×Ô¶¯Ö´Ðеĺ¯Êý¡£
(function(){ // some private code that will be executed automatically })(); (function(a,b){ var result = a+b; return result; })(10,20) |
8¡¢Ëæ»ú»ñȡһ¸öÊý×éÏî
var items = [12, 548 , 'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' , 2145 , 119]; var randomItem = items[Math.floor(Math.random() * items.length)]; |
9¡¢ÔÚÌØ¶¨·¶Î§ÄÚ»ñȡһ¸öËæ»úÊý
x = Math.floor(Math.random() * (max - min + 1)) + min; |
10¡¢´ÓÊý×Ö0µ½×î´óÖµÖ®¼ä»ñȡһ¸öÊý×ÖÊý×é
var numbersArray = [] , max = 100; for( var i=1; numbersArray.push(i++) < max;); // numbers = [0,1,2,3 ... 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() ¨C 0.5}); /* the array numbers will be equal for example to
[120, 5, 228, -215, 400, 458, -85411, 122205] */
|
13¡¢StringµÄtrimº¯Êý
String.prototype.trim = function(){return this.replace(/^\s+|\s+$/g, "");}; |
14¡¢½«Ò»¸öÊý×鸽¼Óµ½ÁíÒ»¸öÊý×é
var array1 = [12 , "foo" , {name: "Joe"} , -2458]; var array2 = ["Doe" , 555 , 100]; Array.prototype.push.apply(array1, array2); /* array1 will be equal to [12 , "foo" , {name "Joe"} , -2458 , "Doe" , 555 , 100] */ |
15¡¢½«arguments¶ÔÏóת»»³ÉÒ»¸öÊý×é
var argArray = Array.prototype.slice.call(arguments); |
16¡¢ÑéÖ¤²ÎÊýÊÇ·ñÊÇnumberÀàÐÍ
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); // ÕâÊÇÒ»¸öеÄarrayµÄ·½·¨ |
Èç¹ûÄã²»ÔÚʹÓöàÖØframesµÄÇé¿öÏ£¬Ä㻹¿ÉÒÔʹÓà 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); // [a,b,10] // instanceof will not work correctly, myArray loses his constructor // constructor is not shared between frames arr instanceof Array; // false |
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; // myArray will be equal to []. |
20¡¢²»ÒªÊ¹ÓÃdeleteȥɾ³ýÒ»¸öÊý×éÏî
ʹÓà split ¶ø²»ÒªÊ¹Óà delte À´É¾³ýÊý×éÖеÄij¸öÏʹÓà delete Ö»ÊÇÓà undefined
À´Ìæ»»µôÔÓеÄÏ²¢²»ÊÇÕæÕýµÄ´ÓÊý×éÖÐɾ³ý¡£²»ÒªÓÃÈçϵķ½Ê½
var items = [12, 548 ,'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' ,2154 , 119 ]; items.length; // return 11 delete items[3]; // return true items.length; // return 11 /* items will be equal to [12, 548, "a", undefined ¡Á 1, 5478, "foo", 8852, undefined ¡Á 1, "Doe", 2154, 119] */ |
¶øÊÇÓÃÏÂÁеķ½Ê½
var items = [12, 548 ,'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' ,2154 , 119 ]; items.length; // return 11 items.splice(3,1) ; items.length; // return 10 /* items will be equal to [12, 548, "a", 5478, "foo", 8852, undefined ¡Á 1, "Doe", 2154,119] */ |
Ó¦¸ÃÓÃdeleteÀ´É¾³ýÒ»¸ö¶ÔÏóµÄÊôÐÔ
21¡¢Ê¹Óà length À´½Ø¶ÌÒ»¸öÊý×é
¸úÉÏÃæµÄÇå¿ÕÊý×éµÄ·½Ê½ÀàËÆ£¬ÎÒÃÇʹÓà length ÊôÐÔÀ´½Ø¶ÌÒ»¸öÊý×é¡£
var myArray = [12 , 222 , 1000 , 124 , 98 , 10 ]; myArray.length = 4; // myArray will be equal to [12 , 222 , 1000 , 124]. |
´ËÍ⣬Èç¹ûÄ㽫һ¸öÊý×éµÄ length ÉèÖóÉÒ»¸ö±ÈÏÖÔÚ´óµÄÖµ£¬ÄÇôÕâ¸öÊý×éµÄ³¤¶È¾Í»á±»¸Ä±ä£¬»áÔö¼ÓеÄ
undefined µÄÏî²¹ÉÏ¡£ Êý×éµÄ length ÊôÐÔÊǿɶÁдµÄ¡£
myArray.length = 10; // the new array length is 10 myArray[myArray.length - 1] ; // undefined |
22¡¢ÔÚÌõ¼þÖÐʹÓÃÂß¼ÔËËã·û:AND¡¢OR
var foo = 10; foo == 10 && doSomething(); // µÈ¼ÛÓÚ if (foo == 10) doSomething(); foo == 5 || doSomething(); // µÈ¼ÛÓÚ if (foo != 5) doSomething(); |
OR¿ÉÒÔÓÃÓÚ¸øº¯ÊýÉèÖÃĬÈϲÎÊý
function doSomething(arg1){ Arg1 = arg1 || 10; // Èç¹ûarg1ûÓб»ÉèÖõϰ£¬Arg1½«±»Ä¬ÈÏÉè³É10 } |
23¡¢Ê¹Óà map() ·½·¨À´±éÀúÒ»¸öÊý×éÀïµÄÏî
var squares = [1,2,3,4].map(function (val) { return val * val; }); // squares will be equal to [1, 4, 9, 16] |
24¡¢±£ÁôСÊýλ
var num =2.443242342; num = num.toFixed(4); // num will be equal to 2.4432 |
25¡¢¸¡µãÊýÎÊÌâ
0.1 + 0.2 === 0.3 // is false 9007199254740992 + 1 // is equal to 9007199254740992 9007199254740992 + 2 // is equal to 9007199254740994 |
ΪʲôÊÇfalse£¿0.1+0.2µÈÓÚ0.30000000000000004¡£±ðÍüÁË£¬ËùÓеÄJavaScriptÊý×ÖÔÚÄÚ²¿¶¼ÊÇÒÔ64λ¶þ½øÖƱíʾµÄ¸¡µãÊý£¬·ûºÏIEEE
754±ê×¼¡£¸ü¶àµÄ½éÉÜ£¬¿ÉÒÔÔĶÁthis blog post.Äã¿ÉÒÔʹÓà toFixed() ºÍ toPrecision()
·½·¨½â¾öÕâ¸öÎÊÌâ¡£
|