学习js第四天下

一、函数的参数

function sum(a,b){
 console.log(a+b);
}

2.调用函数时解析器也不会检查实参的数量

多余的实参不会被赋值

如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined

二、return

1.创建一个函数,用来计算三个数的和

function sum(a,b,c){//alert(a+b+c);var d=a+b+c;

return d;

}

可以使用return来设置函数的返回值

语法:return 值

return后的值将会作为函数的执行结果返回

在函数中renturn后语句不再执行;

如果return语句后不跟任何值,就相当于返回一个undefined

如果函数中不写return,则会返回undefined

//调用函数

//函数返回什么result的值就是什么

var result=sum(4,7,5);

三、实参可以是任何值

1.//定义一个函数,判断一个数字是否是偶数,如果是返回true,否则返回false

function isEven(){return num%2==0;
}
var result=isEven(12);
cosole.log(result);

2.定义一个函数,根据半径计算一个圆的面积,并返回计算结果

function circle(r){
	return 3.14*r*r;
}
var result=circle(4);
console.log(result);

3.创建一个函数,可以在控制台中输出一个人的信息

//可以输出人的name age gender address

实参可以是任意类型的数据类型,也可以是一个对象

当我们的参数太多了,我们就把参数封装到一个对象中,然后通过对象传递

/*function sayHello(name,age, gender, address){
	console.log("我是"+name+",今年我"+age+"岁了,");
}*/
function sayHello(o){
	console.log("我是"+o.name+",今年我"+o.age+"岁了,"+“性别”+gender);
}
var obj={
	name:"小明";
	gender:"男";
    age:18;
	address:“北京”
}

sayHello

–函数对象

–相当于直接使用函数对象

sayHello()

–调用函数

–相当于使用函数的返回值

四、返回的类型

function fun(){alert("函数要执行了");for(var i=0;i<5;i++){if(i==2{//使用break可以退出当前的循环//break;//使用continue用于跳过当次循环//continue;//使用return 可以结束整个函数
//return;
}
console.log(i);
}
alert("函数执行完了");
}

//函数时任意的数据类型

//也可以是一个对象、也可以是一个函数

在函数内部再声明一个函数

function fun3(){function fun4(){return{name:"沙和尚	"};}
}

五、立即执行函数

1.函数定义完,立即被调用,这种函数叫做立即执行函数

2.立即执行函数往往只会执行一次

(function fun4(){return{name:"沙和尚	"}})();

3.枚举对象

枚举对象中的属性

//使用for……in语句

语法:

for(var 变量 in 对象){

}

for……in语句 对象中有几个属性,循环体就会执行几次

每次执行时,会将对象中的一个属性的名字赋值给变量

for(var n in obj){//console.log("属性名"+n);
console.log("属性值”+obj[n]);
}

六、作用域

作用域:指一个变量的作用范围

/*

​ * 作用域

​ * - 作用域指一个变量的作用的范围

​ * - 在JS中一共有两种作用域:

​ * 1.全局作用域

​ * - 直接编写在script标签中的JS代码,都在全局作用域

​ * - 全局作用域在页面打开时创建,在页面关闭时销毁

​ * - 在全局作用域中有一个全局对象window,

​ * 它代表的是一个浏览器的窗口,它由浏览器创建我们可以直接使用

​ * - 在全局作用域中:

​ * 创建的变量都会作为window对象的属性保存

​ * 创建的函数都会作为window对象的方法保存

​ * - 全局作用域中的变量都是全局变量,

​ * 在页面的任意的部分都可以访问的到

​ * 2.函数作用域

​ *

​ */

       var a = 10;var b = 20;//var c = "hello";//console.log(window.c);function fun(){
​        console.log("我是fun函数");}//window.fun();//window.alert("hello");

七、函数作用

1.函数作用域

–调用函数时创建函数作用域,函数执行完毕以后,函数作用域销毁

–每调用一次函数,就会产生一个函数作用域,他们之间是互相独立的

–在函数作用域中可以访问到全局作用域的变量,在全局作用域中无法访问到函数作用域的变量

–就近原则–当在函数作用域操作一个变量时,它会先在自身作用域中寻找,如果有就直接使用

如果没有则向上一级作用域中寻找,知道找到全局作用域

如果全局作用域中仍然没有找到,则会报错。

在函数中访问全局变量时可以使用window调用

在函数作用域也有声明提前的特性

****使用var关键字声明的变量,会在函数中所有的代码执行之前被声明

函数声明也会在函数中所有的代码执行之前执行

2.声明提前

/*

​ * 变量的声明提前

​ * - 使用var关键字声明的变量,会在所有的代码执行之前被声明(但是不会赋值),

​ * 但是如果声明变量时不使用var关键字,则变量不会被声明提前

​ *

​ * 函数的声明提前

​ * - 使用函数声明形式创建的函数 function 函数(){}

​ * 它会在所有的代码执行之前就被创建,所以我们可以在函数声明前来调用函数

​ * 使用函数表达式创建的函数,不会被声明提前,所以不能在声明前调用

​ */

   /*console.log("a = "+a);
​    var a = 123;*///fun();//函数声明,会被提前创建function fun() {
​      console.log("我是一个fun函数");}//函数表达式,不会被提前创建var fun2 = function() {
​      console.log("我是fun2函数");};fun2();

八、this

解析器在调用函数每次都会向函数内部传递一个隐含的参数

这个隐含的参数就是this,this指向的是一个对象

这个对象我们称为函数执行的上下文对象

根据函数的调用方式的不同,this会指向不同的对象

1.以函数的形式调用时,this永远都是window

2.以方法的形式调用时,this就是调用方法的那个对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值