javascript和“主流大型语言”(c# JAVA C++等)的差异
1.javascript不支持overload,因为它的函数参数是以数组方式来实现的,没有固定的参数签名,所以无法重载。
2.javascript的基本类型只有5个:number string boolean null undefined,注意,javascript的string就是基本类型。跟其他语言不同。
3.javascript函数的参数传递并没有什么引用类型按值传递或值类型按引用类型传递等等的那么复杂,只有简单的一种方式:按值传递。甭管是什么类型参数。
4.五大类型变量除了null,其余的typeof都是该类型名,只有null的typeof是object。原因是因为在ECMAScript构造过程中把null当成一个空指针对象来表示,所以它为object。
5.变量的作用域的分歧:javascript中,用{}来作为封闭域不靠谱。如循环语句或条件语句的{}构不成封闭域,而function在书写时也会构成或不构成。示例代码:
if(true){ var a=1; } alert(a);//1 function add(){ var sum=arguments[0]+arguments[1]; return sum; } var s=add(1,2); alert(sum);//产生错误 function adds(){ sum=arguments[0]+arguments[1];//去掉var return sum; } var sb=adds(1,2); alert(sum);//3