
函数function
//1.使用构造函数创建一个函数对象
//2.使用函数声明创建一个函数
//3.使用函数表达式创建一个函数/匿名函数
{//代码块
console.log("苹果");
console.log("葡萄");
console.log("菠萝");
}我们在开发的时候不建议使用这种方式
var fun1=new Function("console.log('这是通过构造函数创建的函数')");
console.log(typeof fun1);
fun1(); // 这是通过构造函数创建的函数封装到函数中的代码不会即可执行 函数中的代码会在函数调用的时候执行 调用函数:语法 函数对象(); 当调用函数时,函数中封装的代码会按照顺序执行
使用函数声明来创建一个函数(建议使用方式) 语法:
function 函数名([形参1,形参2,...,形参N]){
//语句
}说明:
-[形参1,形参2,...,形参N]这里的 [] 表示可以使用参数也可以不使用参数
函数的调用:
function fun2(){
console.log("苹果");
console.log("葡萄");
console.log("菠萝");
}
fun2();//使用函数表达式创建一个函数
var fun3= function(){
alert("这是一个匿名函数")
};
fun3();const a = (b...) => {
console.log("声明式创建匿名函数")
}定义一个用来求两个数和的函数
function sum(a,b){
var add=a+b;//false+"123" =>false123
console.log(add);
}
sum(123,456);
sum(false,"123");调用函数时解析器不会检查实参的类型, 所以要注意,是否有可能会接收到非法的参数,如果有可能则需要对参数进行类型的检查
调用函数时,解析器也不会对检查实参的数量 多余的参数将不会被赋值,如果实参少于形参的数据,则没有对应实参的形参将是undefined
function result(a,b,c){
console.log("a="+a);
console.log("b="+b);
console.log("c="+c);
var sum=a+b+c;
console.log("sum="+sum);
}
result(123,234);//实参少于形参
result(123,234,345,6767,78,9);//实参多余形参思路:
语法:return 值;
在函数return后的语句都不会执行 如果return语句后不跟任何值,就相当于返回一个undefined
function sum(a,b){
var c=a+b;
return c;
alert("234234");
}
var total = sum(12,45);
console.log("返回结果=="+total);函数定义完,立即被调用,这种函数叫做立即执行函数 立即执行函数往往只会执行一次
(function(){
alert("这是一个立即执行函数");
})();
(function(a,b){
alert(a+b);
})(23,23);//创建一个对象
var obj=new Object();
obj.name="zhangsan";
obj.age=23;
obj.sayWorld=function(){
alert("hello every! my name is "+obj.name);
};
// console.log(obj.sayWorld);
// obj.sayWorld();调用函数就是调用对象的方法 但是它只是名称上的区别没有其他的区别
function sayHello(){
alert("hello every!");
}
var obj1=new Object();
obj1.name="小红";
obj1.age=23;
obj1.sayWorld=sayHello;
//obj1.sayWorld();//通过对象去调用,我们叫做方法
//sayHello();//叫做函数的调用//通过对象字面量的方式创建对象
var person={
name:"小明",
age:12,
sayWord:function(){
alert("hello every! my name is "+person.name);
}
};
person.sayWord();