<script type="text/javascript">
//关于函数的一些细节
function a1(){
var a=b=1;
//这样命名局部变量 函数体内可以正常使用 函数体外变量a未定义 然而b可以被找到
}
var test=function test1(){}
//表达式命名函数 test1对test意义不大 console(test.name)为test1
//匿名函数表达式 window.prompt("a")键盘接收用户数据输入
//var aa=Number(window.prompt("a"));
//var bb=Number(window.prompt("b"));
var num=function (a,b){
console.log(a+b);
};
//num(aa,bb);//aa bb 占位符
//-----> 实参与形参数量可不等 -->console.log(argument) 可知道程序有多少实参 也可以取出来 形参同理
//function test2(a,b,c){console.log(a,b)}
//test2(1,2,3);//报错 c未定义
//function test2(a,b){console.log(a,b)}
//test2(1,2,3);//未报错
//调用函数 累加其实参值 arguments.length获取实参的长度(个数)
function num1(){
var x=0;
for(var i=0;i<arguments.length;i++){
x +=arguments[1];
}
console.log(x);
}
//num1(1,2,3,3,5,6);
//实参与形参的映射 形参和实参不是同一个东西
/*
形参:是在定义函数时使用的参数,目的是用来接收调用该函数时传进来的实际参数。
实参:是在调用时传递给函数的参数。
* */
function test3(a,b){//形参
a=3; //重新覆盖 3->2->a
console.log(arguments[0]);//arguments[0]指向a 但是arguments存在堆内存里面 而变量a b存在栈内存
console.log(arguments[1]);//4
console.log(a);//3
console.log(arguments[0]===a);//true
/* ==和===的区别和一些比较规则:
== 在比较类型不同的变量时,会进行数据类型转化,将二者转换成数据类型相同的变量,再进行比较。
NaN == NaN false NaN和任何数都不相等,包括NaN本身 。 [] == [] false {} == {} false 引用数据类型比较的是地址。
undefined == null true 但是 undefined === true false (因为数据类型不一样)。
对象 == 字符串 将对象转换成字符串.
剩下的其他情况如果两边数据类型不一样,都需要转换成数字类型。
=== 比较的二者数据类型不一样时,直接返回false。
*/
}
//test3(2,4);//实参
js 函数基础 函数种类 形参实参
最新推荐文章于 2022-12-04 15:53:23 发布