���������ķ�չ�����ٺͻ����ٶȵ����ߣ�Խ��Խ������վ�õ��˷ḻ�ͻ��˼�����������Ajax������Ϊ���е�һ�ַ�ʽ��javascript��һ�ֽ��������ԣ����������ﵽ��C/Java֮����ˮƽ�������������ڿͻ������������飬Ϊ���ܸĽ��������ܣ�������������ǰ��javascript�����ĺܶ�������̸̸�Լ��ľ��飬ϣ���ܰ������ҸĽ��Լ���javascript�ű����ܡ�
�������Բ��η���
����ѭ��
����ѭ���Ǻܳ��õ�һ�����ƽṹ���ֶ���Ҫ�����������ɣ���javascript�У����ǿ���ʹ��for(;;),while(),for(in)����ѭ������ʵ�ϣ�������ѭ����for(in)��Ч�ʼ����Ϊ����Ҫ��ѯɢ�м���ֻҪ���Ծ�Ӧ�þ������á�for(;;)��whileѭ��������Ӧ��˵����(ƽʱʹ��ʱ)�ȼۡ�
��������ʵ�ϣ�����ʹ��������ѭ�������кܴ������ڲ�������Щ������˼������������¼�������ó��Ľ����ǣ�
����������ѭ�������������ݼ�����Ҫ������ѭ��������ֵ��Ӧ����������һ�ζ�ȡ��ʱ��ʹ��Ƕ��++��������
��������Ҫ�������ij������Ƚϣ�Ӧ�����Ȱ�������length���Է���һ���ֲ������У����ٲ�ѯ������
�����ֲ�������ȫ�ֱ���
�����ֲ��������ٶ�Ҫ��ȫ�ֱ����ķ����ٶȸ��죬��Ϊȫ�ֱ�����ʵ��ȫ�ֶ����ij�Ա�����ֲ������Ƿ��ں�����ջ���еġ�
������ʹ��Eval
����ʹ��eval�൱��������ʱ�ٴε��ý������������ݽ������У���Ҫ���Ĵ���ʱ�䡣��ʱ��ʹ��javascript��֧�ֵıհ�����ʵ�ֺ���ģ��(���ڱհ����������ο�����ʽ���̵��й�����)
�������ٶ�������
������Ϊjavascript�Ľ����ԣ�����a.b.c.d.e����Ҫ��������4�β�ѯ�������ȼ���a�ټ���a�е�b���ټ���b�е�c���������¡��������������ı���ʽ�ظ����֣�ֻҪ���ܣ�Ӧ�þ����ٳ��������ı���ʽ���������þֲ���������������һ����ʱ�ĵط����в�ѯ��
������һ�����Ժ�ѭ��������������Ϊ���dz���Ҫ�����ַ����������ij��Ƚ���ѭ������ͨ�����������Dz����ģ�����ÿ�β�ѯa.length����Ҫ��������һ����������Ԥ�Ȱ�var len=a.length����������һ�β�ѯ��
�����ַ�������
�������������ַ���������ʹ��s+=anotherStr������������Ҫʹ��s=s+anotherStr��
��������Ҫ���Ӷ����ַ�����Ӧ����ʹ��+=����
����s+=a;s+=b;s+=c;
����Ӧ��д��
����s+=a + b + c;
�������������ռ��ַ������������ζ�ͬһ���ַ�������+=�����Ļ�������ʹ��һ�����档��ô����?ʹ��javascript�������ռ�������ʹ��join������������������
����������Ƭ�Σ�
����var buf = new Array();for(var i = 0; i < 100; i++){ buf.push(i.toString());}var all = buf.join("");
��������ת��
��������ת���Ǵ��ҳ����Ĵ�������Ϊjavascript�Ƕ�̬�������ԣ��㲻��ָ�����������͡�
����1. ������ת�����ַ�����Ӧ��"" + 1����Ȼ�������Ƚϳ�һ�㣬����ʵ������Ч�������ߵģ���������˵��
����������Ƭ�Σ�
����("" +) > String() > .toString() > new String()
����������ʵ�������ġ�ֱ�������е����ƣ�����ʹ�ñ���ʱ����ʹ�õ��ڲ�����Ҫ������ʱʹ�õ��û�����Ҫ�졣
����String()�����ڲ������������ٶȺܿ죬��.toString()Ҫ��ѯԭ���еĺ����������ٶ�ѷɫһЩ��new String()���ڷ���һ����ȷ�ĸ�����
����2. ������ת�������ͣ����������׳������ܶ���ϲ��ʹ��parseInt()����ʵparseInt()�����ڽ��ַ���ת�������֣������Ǹ�����������֮����ת��������Ӧ��ʹ��Math.floor()����Math.round()��
�������⣬�͵ڶ��ڵĶ��������е����ⲻһ����Math���ڲ�����������Math.floor()��ʵ��û�ж��ٲ�ѯ�����͵��õ�ʱ�䣬�ٶ��������ġ�
����3. �����Զ����Ķ���������������toString()��������������ת���Ļ����Ƽ���ʽ����toString()����Ϊ�ڲ��IJ����ڳ������п�����֮�᳢�Զ�����toString()���������ܷ�ת��ΪString������ֱ�ӵ�����������Ч�ʻ����ߡ�
[NextPage]
����ʹ��ֱ����
������ʵ����Ӱ�쵹�Ƚ�С�����Ժ��ԡ�ʲô��ʹ��ֱ���������磬javascript֧��ʹ��[param,param,param,...]��ֱ�ӱ���һ�����飬�������Ƕ�ʹ��new Array(param,param,...)��ʹ��ǰ��������ֱ�ӽ��͵ģ�����Ҫ����һ��Array�ڲ�������������Ҫ����һ���㡣
����ͬ����var foo = {}�ķ�ʽҲ��var foo = new Object();�죬var reg = /../;Ҫ��var reg=new RegExp()�졣
�����ַ�����������
�������ַ�������ѭ��������Ʃ���滻�����ң�Ӧʹ����������ʽ����Ϊ����javascript��ѭ���ٶȾͱȽ���������������ʽ�IJ�������Cд�ɵ����Ե�API�����ܺܺá�
����������
�����Զ�����������Date��RegExp�����ڹ���ʱ�������Ĵ���ʱ�䡣�������Ը��ã�Ӧ���û����ķ�ʽ��
����DOM����
��������HTML
�����ܶ���ϲ����javascript��ʹ��document.write����ҳ���������ݡ���ʵ��������Ч�ʽϵͣ�������Ҫֱ�Ӳ���HTML��������һ������Ԫ�أ�����ָ��һ��div����span�����������ǵ�innerHTML�����Լ���HTML�������뵽ҳ���С�
����������ѯ
����ʹ��[����]��ѯҪ��.items()���죬����ǰ���ļ��ٶ������ҵ�˼·��һ���ģ�����.items()������һ�β�ѯ�ͺ����ĵ��á�
��������DOM�ڵ�
����ͨ�����ǿ��ܻ�ʹ���ַ���ֱ��дHTML�������ڵ㣬��ʵ������
��������֤��������Ч��
�����ַ�������Ч�ʵ�
��������Ӧ������document.createElement()�������������ĵ��д����ֳɵ������ڵ㣬Ӧ������cloneNode()��������Ϊʹ��createElement()����֮��������Ҫ���ö���Ԫ�ص����ԣ�ʹ��cloneNode()�����Լ������Ե����ô�������ͬ��������Ҫ�����ܶ�Ԫ�أ�Ӧ������һ�������ڵ㡣
������ʱ��
�����������Ե��Dz������еĴ��룬��Ӧ��ʹ��setTimeout����Ӧ������setInterval��setTimeoutÿ��Ҫ��������һ����ʱ����
��������
�����ű�����
�������Ҳ���Microsoft��JScript��Ч�ʽ�Mozilla��SpidermonkeyҪ���ܶ࣬������ִ���ٶȻ����ڴ������ϣ���ΪJScript���ڻ���Ҳ�������ˡ���SpiderMonkey����ʹ��ActiveXObject
�������
�����ļ��Ż�Ҳ��һ������Ч���ֶΣ�ɾ�����еĿո���ע�ͣ��Ѵ�������һ���ڣ����Լӿ����ص��ٶȣ�ע�⣬�����ص��ٶȶ����ǽ������ٶȣ������DZ��أ�ע�ͺͿո���Ӱ�����ͺ�ִ���ٶȡ�
�����ܽ�
���������ܽ�������javascript���������ҵ�������javascript�������ܵ�һЩ��������ʵ��Щ���鶼���ڼ���ԭ����
����ֱ������ͷ�ֳɵĶ����ȽϿ죬���ֲ�������ȫ�ֱ����죬ֱ����������ʱ�����������ȵȡ�
�����������ٵؼ���ִ�д����������Ȼ�����Ҫ���β�ѯ�ġ�
����������ʹ���������õĹ��ܣ����紮���ӡ�
����������ʹ��ϵͳ�ṩ��API����Ϊ��ЩAPI�DZ����õĶ����ƴ��룬ִ��Ч�ʺܸ�
����ͬʱ��һЩ�������㷨�ϵ��Ż���ͬ����������javascript�У����������ṹ�ĵ����������Ͳ������ˡ���������javascript�ǽ����͵ģ�һ�㲻��������ʱ���ֽ��������Ż���������Щ�Ż���Ȼ�Ǻ���Ҫ�ġ�
������Ȼ����ʵ������һЩ����ͬ��ʹ����������һЩ�����������У�����Ҳ���Խ��вο���
[NextPage]
�����ο�
����http://www.umsu.de/jsperf/ �����������IJ��ԶԱ�
����http://home.earthlink.net/~kendrasg/info/js_opt/
������¼1
������������ǰ�����IJ��ԣ����Դ����Ѿ���ȫ���Ҳ�����һ�������£�
����������Ƭ�Σ�
����var print;if(typeof document != "undefined" ){ print = function(){ document.write(arguments[0]); }}else if(typeof WScript != "undefined" ){ print = function(){ WScript.Echo(arguments[0],arguments[1],arguments[2]); }}function empty(){}function benchmark(f){ var i = 0; var start = (new Date()).getTime(); while(i < pressure){ f(i++); } var end = (new Date()).getTime(); WScript.Echo(end-start);}/*i=0start = (new Date()).getTime();while(i < 60000){ c = [i,i,i,i,i,i,i,i,i,i]; i++;}end = (new Date()).getTime();WScript.Echo(end-start);i=0start = (new Date()).getTime();while(i < 60000){ c = new Array(i,i,i,i,i,i,i,i,i,i); i++;}var end = (new Date()).getTime();WScript.Echo(end-start);*/function internCast(i){ return "" + i;}function StringCast(i){ return String(i)}function newStringCast(i){ return new String(i)}function toStringCast(i){ return i.toString();}function ParseInt(){ return parseInt(j);}function MathFloor(){ return Math.floor(j);}function Floor(){ return floor(j);}var pressure = 50000;var a = "";var floor = Math.floor;j = 123.123;print("-------------
String Conversion Test");print("The empty:", benchmark(empty));print("intern:", benchmark(internCast));print("String:");benchmark(StringCast);print("new String:");benchmark(newStringCast);print("toString:");benchmark(toStringCast);print("-------------
Float to Int Conversion Test");print("parseInt");benchmark(ParseInt);print("Math.floor");benchmark(MathFloor);print("floor")benchmark(Floor);function newObject(){ return new Object();}function internObject(){ return {};}print("------------
literal Test");print("runtime new object", benchmark(newObject));print("literal object", benchmark(internObject));
������¼2
��������1��
����������Ƭ�Σ�
����for(var i=0;i<100;i++){ arr[i]=0; }
��������2��
����������Ƭ�Σ�
����var i = 0; while(i < 100){ arr[i++]=0; }
��������3��
����������Ƭ�Σ�
����var i = 0; while(i < 100){ arr[i]=0; i++; }
������firefox�²��������δ��룬�����Ǵ���2���ڴ���1��3��������1һ�����ڴ���3����ʱ�ᱻ����3����;����IE 6.0�£�����ѹ���ϴ���ʱ��(������10000������)����2��3����ʱ�����ڴ���1����ʱ���ͻ�ԶԶ��������1�����ڲ���ѹ����С(��5000��)��������2>����3>����1��
��������4��
����������Ƭ�Σ�
����var i = 0; var a; while(i < 100){ a = 0; i++; }
��������5��
����������Ƭ�Σ�
����var a; for(var i=0;i<100;i++){ a = 0; }
�����������δ�����Firefox��IE�²��Խ����������ܽӽ��ġ�
��������6��
����������Ƭ�Σ�
����var a; var i=0; while(i<100){ a=i; i++; }
��������7��
����������Ƭ�Σ�
����var a; var i=0; while(i<100){ a=i++; }
��������8��
����������Ƭ�Σ�
����var a; for(var i=0;i<100;i++){ a = i; }
��������9��
����������Ƭ�Σ�
����var a; for(var i=0;i<100;){ a = i++; }
�������Ķδ�����Firefox��6��8�����ܽӽ���7��9�����ܽӽ�����6, 8 < 7, 9;
����������������һ�¿�ѭ��
��������10��
����������Ƭ�Σ�
����for(var i=0;i<100;i++){ }
��������11��
����������Ƭ�Σ�
����var i; while(i<100){ i++; }
���������IJ��Գ����������Ľ�����Firefox�´���10������ʱ��������11�����Ĵ�Լ��24:1�����������߱��ο���ֵ��������û�з���һ��ʼ�����ҿ���
�˽���Щ�֣��ŵ���˼ ������˼ �ŵ���˼ ������˼ �ĵ���˼ �Ե���˼ �ܵ���˼