函数:
function 函数名(){};
if(1>0){console.log('a');console.log('b')};
if(2>0){console.log('a');console.log('b')};
if(3>0){console.log('a');console.log('b')};
像这种代码重复叫做耦合;代码重复冗余,代码低效;编程将就高内聚低耦合;
把相同的代码装在函数里,用的时候调用他;
function dayin(){console.log('a');console.log('b')}; //定义一个函数
if(1>0){dayin()};if(2>0){dayin()}//dayin() 执行函数;
function demo(){console.log('hello')};//函数可以作为一个单独功能;需要的时候调用他
定义:function text(){ //function关键字,text 函数名
函数体
}
函数名如果是多个单词的还,驼峰命名(第一个单词首字母小写,之后的首字母大写)
var niming=function(){console.log(niming.name)} //匿名函数表达式,他的函数名是niming;
(用的比较多,所以表达式一般指的是匿名函数)
var hanshu=function test(){console.log(hanshu.name)} //命名函数表达式,他的函数名是test,但是会忽略test,
变成匿名函数,所以之后直接写成匿名函数;
参数:
function add(a,b){console.log(a+b)} //a和b叫形式参数(形参)
add(2,5)//2和5叫实际参数(实参);
function add(a,b,c){ //相当于在 里面隐式var a,b,c,值都是 undefined;
console.log(add.length); //形参的长度
console.log(typeof(add));
console.log(arguments);//实际参数列表;
a=6;//此时arguments[0]=6;
arguments[0]=7;//此时a=7; 映射
}
add(5,5);
//形参和arguments是映射关系,一个值变化另一个值也跟着改变,但是是不同的两个,只是映射关系;
实参有几个就对应几个形参,形成映射关系,没有对应上的形参就没有和arguments里产生映射;
在js中万物皆对象,甚至数组字符串函数都是对象。所以这个叫做arguments的东西也是个对象,
而且是一个特殊的对象,它的属性名是按照传入参数的序列来的,第1个参数的属性名是’0’,
第2个参数的属性名是’1’,以此类推,并且它还有length属性,存储的是当前传入函数参数的个数,很多时候我们把这种对象叫做类数组对象。
类数组对象和数组都是对象这个妈生的,但是数组是大哥比类数组对象多了很多其他的玩具(方法),类数组对象只是长得很像数组的弟弟而已。
add(1,2); //执行函数,相当于给a,b赋值;
形参可以比实参多,实参也可以比形参多;不会报错;参数传什么数据类型都行
function shishi() { //
console.log(arguments);
}
shishi(1,2,3,4,5,6,7,8,9);
function 函数名(){};
if(1>0){console.log('a');console.log('b')};
if(2>0){console.log('a');console.log('b')};
if(3>0){console.log('a');console.log('b')};
像这种代码重复叫做耦合;代码重复冗余,代码低效;编程将就高内聚低耦合;
把相同的代码装在函数里,用的时候调用他;
function dayin(){console.log('a');console.log('b')}; //定义一个函数
if(1>0){dayin()};if(2>0){dayin()}//dayin() 执行函数;
function demo(){console.log('hello')};//函数可以作为一个单独功能;需要的时候调用他
定义:function text(){ //function关键字,text 函数名
函数体
}
函数名如果是多个单词的还,驼峰命名(第一个单词首字母小写,之后的首字母大写)
var niming=function(){console.log(niming.name)} //匿名函数表达式,他的函数名是niming;
(用的比较多,所以表达式一般指的是匿名函数)
var hanshu=function test(){console.log(hanshu.name)} //命名函数表达式,他的函数名是test,但是会忽略test,
变成匿名函数,所以之后直接写成匿名函数;
参数:
function add(a,b){console.log(a+b)} //a和b叫形式参数(形参)
add(2,5)//2和5叫实际参数(实参);
function add(a,b,c){ //相当于在 里面隐式var a,b,c,值都是 undefined;
console.log(add.length); //形参的长度
console.log(typeof(add));
console.log(arguments);//实际参数列表;
a=6;//此时arguments[0]=6;
arguments[0]=7;//此时a=7; 映射
}
add(5,5);
//形参和arguments是映射关系,一个值变化另一个值也跟着改变,但是是不同的两个,只是映射关系;
实参有几个就对应几个形参,形成映射关系,没有对应上的形参就没有和arguments里产生映射;
在js中万物皆对象,甚至数组字符串函数都是对象。所以这个叫做arguments的东西也是个对象,
而且是一个特殊的对象,它的属性名是按照传入参数的序列来的,第1个参数的属性名是’0’,
第2个参数的属性名是’1’,以此类推,并且它还有length属性,存储的是当前传入函数参数的个数,很多时候我们把这种对象叫做类数组对象。
类数组对象和数组都是对象这个妈生的,但是数组是大哥比类数组对象多了很多其他的玩具(方法),类数组对象只是长得很像数组的弟弟而已。
add(1,2); //执行函数,相当于给a,b赋值;
形参可以比实参多,实参也可以比形参多;不会报错;参数传什么数据类型都行
function shishi() { //
console.log(arguments);
}
shishi(1,2,3,4,5,6,7,8,9);
return;返回值并终止函数