函数
js中对象 值的结合可以包含数组 字符 函数 名值对
创建新的对象
var mingzi=new Object()
var 名字={};
赋值cat.name='xxxx'; cat[ 'name']='xxxxx';
删除delete cat.type;
检测 ‘name’ in cat
遍历对象里的信息
for(var p in cat){
console.log(p);
console.log(cat['p']);
}
一般情况下的样子
命名函数
function add(n1,n1){
return res=n1+n2
}
add(x,x);
函数名直指在内存中为位置
一次封装全局使用
匿名函数
window.load=function(){
……
}
定义和调用
调用函数时 函数才会开始运行
函数可以帮助进行反复使用
jQuery
可以统一修改和维护
对象字面量{}
function add(num1,num2){…..}
构造函数
new Object()
new Function(‘num1’, 'num2'….)\
作为数据值使用
var person={};
var add=function(){
retrun 1;
};
add();
console.log(add());
作为参数
setTimeout(fn)
function fn(){
…}
作为返回值
function fn()
{
return function(){
console.log(1)
};
}
fn()();
函数的定义方式
字面量定义
function声明
function add(){}
调用add();
声明的调用写前写后都可以
var复制表达式
var add=function(..){}
add();
赋值表达式的调用写在前面会出现报错
构造函数
new function(‘num1’,‘num2’ ‘num1+num2’)
add();
函数定义的位置
全局作用域
函数作用域
函数的调用
普通函数
add();
匿名函数var dd=function(){
}
add();
递归调用
function digui(num){
if(num<=1){rentun 1;}
return num*digui(num-1)
}
console.log(digui(5))
调用自身实现递归操作
特殊函数的调用
var opreration={
add:function(num1,num2){
return num1+num2;
}
subtract:function(num1,num2){
return num1-num2;
}
}
operation.add/subtract(1,1);
构造函数的调用
new Person()
特殊函数的调用
docume{nt.οnclick=function(){
console.log(”你点击了文档");
};
document.onclick();
函数的间接调用
function add(num1,num2){
return num1+num2;
}
console(add.call(window,1,2))call为一个一个传
console(add.apply(window,[1,2]))apply 为一个数组进行传
或者定义一个数组 data=[1,2] console(add.apply(window,data));
typeof判断基本类型 instanceof判断应用数据类型或者是对象
参数的类型
形参 实参
参数的个数
1形参与实参个数相同
2实参小于形参
function pow(base.power){
power=power||2;
return Math.pow(base,power);
}
console.log(pow(3));
console.log(pow(4,4))
arguments类似于数组
function(){
if(arguments.length==0)
renturn;
var sum=0;
for(var i=0;i<=arguments.length;i++){
sum+=argunment[i];
}
return sum;
}
console(add(1,2,3,4,4,));
当传递的实参不确定个数是需要使用arguments进行使用
arguments
每一个函数都具有
类数组
是一个类似于数组的对象
{
‘0’:‘1’;
‘1’:‘2’;
.。。。
}
arguments无法使用数组的push类的操作
arguments无法跨函数
arguments.callee指代函数本身
function add(num1,num2){
if(arguments.length!=add.length) throw new Error('请传入'+add.length+‘个参数!’)
return num1+num2;
}console.log(add(1,1))
return 将值给返回
continue 跳出本次循环
break 结束程序
数据可以作为返回值