这是类别《小知识点》的第一篇,特此说明,此类别记录一些计算机、编程语言等相关的杂散知识点,有的是笔试时遇到的题目,虽然不一定有参考价值(因为有的题目完全是为了笔试而设,谁会写一些开发中根本不符规范,可读性很差的函数或是类呢?),但多少是有点帮助的。
一、JS 函数形参
1、JS形参不能赋初值,且默认类型与值为undefined
php、c/c++、java中函数形参可赋初值,从而可省略该形参调用函数,但JS 中不能赋初值,省略该形参调用函数时,省略的形参默认为undefined类型。
<script>
function test(var1,var2){
alert("var1与var2类型分别为:"+typeof var1+typeof var2+" var1+var2的类型为:"+typeof (var1+var2)+" var1+var2值为:"+(var1+var2));
}
test(1,2);
alert("只提供第一个参数(string类型)时");
test("a");
alert("只提供第一个参数(number类型)时");
test(1);
</script>
执行上面脚本可得出
结论:
——>形参的类型在函数调用时才确定,默认为undefined类型(只有一个值undefined);
——>类型的等级为:undefined<int<string。即等级类型与高等级类型相加,整体类型为较高类型。如:
var i=1;
var u;
//则i+u类型为number,值为NaN
var s="string";
//则s+u类型为string,值为stringundefined
二、return语句
1、JS 函数没有使用return语句时(或返回空时),函数返回类型为undefined,使用return语句时,返回类型由返回值决定。
function test1(varValue){}
function test2(varValue){
return varValue;
}
var t1=test1(1);//t1类型为undefined
var t2=test2(1);//t2类型为number
var t3=test2("1");//t3类型为string