4.1函数的创建
1.使用构造方法的方式来创建函数 实例化对象
var fun = new Function("console.log('这是我的第一个函数'),console.log(123)");
我们在实际开发中很少使用构造函数的方式来创建函数
2.使用 函数声明的方式来创建一个函数
function fun2(){
console.log("这是我的第二个函数");
alert("哈哈哈哈");
console.log(123);
document.write("~~~~~(^.^)Y Ya!!~~~~~");
这种方式就显得不笨重
3.使用表达式的方式命名函数
var fun3 = function(){
console.log("我是匿名函数");
}
自调用函数(匿名函数)
(function () {
var x = "Hello!!"; // 我将调用自己
})();
4.2函数的参数
多个形参之间用,隔开,声明形参的时候就相当于在函数内声明了对应的变量
但是并没有赋值
function sum(a,b){
console.log('a = ' + a);
console.log('b = ' + b);
console.log(a+b);
}
实参可以是任意的数据类型,也可以是对象 当我们参数过多的时候,可以将参数封装到一个对象中 然后通过这个对象进行传递
function sayMsg(o){
console.log("我是"+o.name+",我今年"+o.age+",我的性别"+o.sex+",我来自"+o.address);
}
var obj = {
name :'杠精',
sex : '妖怪',
age : 88,
address : '女儿'
}
sayMsg(obj);
实参可以是任意的数据类型,也可以是对象
当我们参数过多的时候,可以将参数封装到一个对象中 然后通过这个对象进行传递
实参可以是一个对象 也可以是一个函数
function mianJi(r){
return 3.14*r*r;
}
function fun(a){
console.log(a);
}
fun(mianJi(2));//12.56
return关键字
function fun3(){
function fun4(){
return 1;
}
//将fun4作为返回值返回
return fun4;
}
var result = fun3()();
console.log(result);//1
function fun5(){
var a = 5;
alert(5);
return 1;
}
console.log(fun5());
当fun5()函数无返回值的时输出 undefined
枚举对象中的属性
枚举对象中的属性
有几个属性,循环就会执行几次 每次执行的时候会把对象中属性名赋值给变量
var obj = {
name : "露娜",
age : 20,
address: "王者荣耀"
}
for(var n in obj){
console.log("属性名"+n);
console.log("属性名"+ obj[n]);
}
作用域
==局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。
全局变量有 全局作用域: 网页中所有脚本和函数均可使用。 ==
变量的声明提前
fun();
function fun(){
alert("我是函数声明提前创建");
}
var fun2 = function(){
console.log("我是函数表达式创建");
}
fun2();
函数声明提前
* 1.使用函数声明提前创建
* function 函数名(){}
* 它会在所有的代码执行前就会被创建
2.使用函数表达式创建
* var 变量 = function(){}
* 使用函数表达式创建的函数,不会被声明提前,所以不能再声明前调用