js第五天_js等待5秒后执行

js第五天_js等待5秒后执行作用域、递归函数、对象、数组_7-3成绩录入时的及格与不及格人数统计分数10作者吴恋单位贵州师范学院编

一、作用域

1.作用域的定义 

作用域:变量起作用的范围

全局作用域:整个js全局起作用

局部作用域:在函数体中变量作用范围

 代码如下(示例):

<script> var num = 100 //全局作用域的变量 function fn(){ // 局部作用域 var num1 = 200 //num1的作用域为fn()函数体 console.log('num11 ',num) function fun(){ var num2 = 300 //num2的作用域为fun()函数体 console.log('num2 ',num2); console.log('num1 ',num1); } fun() } console.log('num22 ',num) fn() </script>

 2.作用域的访问规则(针对变量)

   ①在当前作用域里面查找

   ②如果在当前作用域里面没有找到,就到上级作用域里面查找

   ③如果上级作用域里面没有找到,继续往上找,直到全局作用域

   ④如果全局作用域都没有,就会报错

以上的访问流程称为作用域链

 代码如下(示例):

<script> var num = 100 function fun1() { var num1 = 200 console.log('fun1 num ',num) function fun2() { var num2 = 300 console.log('fun2 num ',num) // 3.如果上级作用域没有,接着向上找,至到全局作用域 console.log('fun2 num1 ',num1) // 2.如果当前作用域没找到,到上级作用域找 console.log('fun2 num2',num2) // 1.当前作用域找 console.log(num3) // 4. 如果全局作用域也没有, 直接报错Uncaught ReferenceError: num1 is not defined } fun2() } fun1() </script>

  3.作用域的赋值规则

    ①赋值前在当前作用域查找

    ②上级作用域查找,找到赋值

    ③上级作用域查找,直到全局作用域

    ④如果以上三个步骤都没有找到,就会将创建全局变量,然后赋值

 代码如下(示例): 

<script> var num = 100 function fun1() { var num1 = 200 function fun2() { var num2 = 300 //赋值前在当前作用域查找 num1 = 400 // 上级作用域查找,找到赋值 num = 500 //上级作用域查找,至到全局作用域 num3 = 600 // 当前作用域查找,上级作用域查找,全局作用域查找,全局作用域也没查找到,将创建全局变量,然后赋值 console.log('num3 ',num3); } fun2() } fun1() </script>

 注意:内层可以访问外层函数作用域变量

            外层不能访问内层作用域变量


二、递归函数 

概念:函数自身调用自身,这样的函数称为递归函数

作用:后面结果由前面推导出来的,可以采用递归函数简化代码

代码如下(示例): 

<script> function fun(n){ if(n == 1){ return } console.log('fun ') fun(n--) } fun(2) </script>

注意:① 要有递归结束的条件   

            ②改变递归条件的代码

递归函数示例: 

代码如下(示例): 

 <script> //求 1+2+3+4+5.....+100 // sum(5) // sum(4)+5 //sum(5) // sum(3)+4 //sum(4) // sum(2)+3 //sum(3) // sum(n-1)+n //sum(n) function getSum(n){ if(n==1){ return 1 } return getSum(n-1)+n } var sum = getSum(100) console.log(sum) </script>

三、对象 

对象:面对对象

①现实生活中对象:具体一事物,对象有自己的特征行为

②软件世界:对象 Object ;属性 方法 ;属性名:属性值构成

obj称为对象名,也可以叫引用变量

对象属于复杂数据类型:

 var obj = {

name:’jakc’,age:18

}

obj 数据类型名 —–> Object

key/value—->键值对的集合

  • 创建对象的两种方法

1.字面量方式:

 var jackObj={   }           //创建空对象

var jackObj={属性:属性值,

                       属性:属性值

}

代码如下(示例): 

<script> var jackObj = { name:'jack', //姓名属性 => name属性名和jack属性值构成 age:18, // 年龄属性 => age属性名和18属性值构成 sex:'男' // 性别属性 } </script>

2.构造函数方式 

 var Obj=new object()

obj.属性=属性值,

obj.属性=属性值

代码如下(示例): 

<script> var obj = new Object() //空对象 obj.name = 'jack', obj.age = 18 </script>
  •  对象的相关语法:

代码如下(示例):  

<script> //  1.创建对象: var obj = { //obj称为对象名,也可以叫引用变量 name:'jack', age:18, sex:'男' } //2. 访问对象给定的属性值 //通过对象访问对象属性 对象名.属性名 ====>属性值 console.log('name :', obj.name) console.log('age :',obj.age) console.log('sex :',obj.sex) // 3. 修改属性值 obj.name = 'rose' console.log('name ',obj.name) console.log(obj) // 4. 删除属性 // delete obj.name console.log(obj) // 5. 添加属性 obj.score = 98 console.log(obj) // 6. 遍历对象 for-in for(var key in obj){ // key = 'name' key='age' ... console.log('key ',key, ' value ',obj[key]) } // 7. 访问属性值,属性名是变量情况 console.log( 'name ',obj.name) var _name = 'name' console.log(obj[_name]) console.log(obj['name']) </script> 
  • 访问对象的示例:

 代码如下(示例):  

 <script> //创建对象 var student={ name:'噜噜菲', num:'002', sex:'女', score:89, grade:'02' } //添加属性 student.height=160 //删除属性 delete student.score //遍历对象属性 for(var m in student){ console.log(m,student[m]) } console.log(student) </script>

 四、数组

数组属于复杂数据类型      类型名为:Array

作用:存储一系列有序数列的集合

  • 创建数组的两种方式

1.字面量方式

var arr=[ ]  //创建空数组

var arr=[1,2,’jack’,true]

 代码如下(示例):  

<script> var arr = [10, 20, 30, 40] </script>

2.构造函数方式

var arr=new Array()

 代码如下(示例):  

<script> var arr1 = new Array(100, 200, 300, 400, 500) </script>
  •    对象的相关语法:

  代码如下(示例):  

<script> //1. 创建数组 var arr = [10, 20, 30, 40] // 0 1 2 3 索引号 //2. 访问数组元素 console.log('arr[0] :', arr[0], ' arr[1] :', arr[1]) //3. 数组长度 console.log('length >> :', arr.length) //4. 遍历数组, 循环变量表示数组索引号从0开始 for (var i = 0; i < arr.length; i++) { console.log(arr[i]) } // 5. 创建数组只有一个元素, 表示创建一个空数组长度是5 length=5 var arr2 = new Array(5) console.log('arr2.length >>> ', arr2.length) for (var i = 0; i < arr2.length; i++) { console.log(arr2[i]) } // 6. 直接控制台打印 console.log(arr); </script>


数组例题: 

 1. 创建一个学生成绩数组,存储所有学生的数学成绩,分别是 89,78,90,99,67,59

  2. 求所有学生中分数最高的学生成绩,打印输出到界面

 3. 求所有学生中分数最低学生成绩,打印输出到界面

  4. 求不及格的学生有几个,打印输出到界面

代码如下(示例):  

<script> // 1. 创建一个学生成绩数组,存储所有学生的数学成绩,分别是 89,78,90,99,67,59 var scoreArr=[89,78,90,99,67,59] // 2. 求所有学生中分数最高的学生成绩,打印输出到界面 var max=scoreArr[0] // 依次让后面的数与最大值max比较,如果大于max,赋值给max // 从数组第二个元素开始循环遍历数组,进行求最大值比较 for(i=1;i<scoreArr.length;i++){ if(max <scoreArr[i]){ max=scoreArr[i] } } console.log('分数最高的学生成绩:',max) //控制台输出,所有学生中分数最高的学生成绩 // 3. 求所有学生中分数最低学生成绩,打印输出到界面 var min=scoreArr[0] // 依次让后面的数与最大值min比较,如果小于min,赋值给min // 从数组第二个元素开始循环遍历数组,进行求最小值比较 for(i=1;i<scoreArr.length;i++){ if(min > scoreArr[i]){ min=scoreArr[i] } } console.log('分数最低学生成绩:',min) //控制台输出,所有学生中分数最低学生成绩 // 4. 求不及格的学生有几个,打印输出到界面 var count=0 for(i=0;i<scoreArr.length;i++){ if(scoreArr[i]<60){ count++ } } console.log('不及格人数是 ',count) </script>

 现有5名学生,语文成绩分别是98,87,95,89,77分,请定义一个成绩数组存储学生成绩并遍历输出 求5名学生总成绩? 求大于平均分的学生成绩?

代码如下(示例):  

 <script> // 现有5名学生,语文成绩分别是98,87,95,89,77分,请定义一个成绩数组存储学生成绩并遍历输出 // 求5名学生总成绩? // 求大于平均分的学生成绩? var arr = [98, 87, 95, 89, 77] function printArr() { for (var i = 0; i < arr.length; i++) { console.log(arr[i]) } } printArr() //总成绩 // 98 + 87 + 95 + 89 + 77 function getTotalScore() { var total = 0 for (var i = 0; i < arr.length; i++) { var item = arr[i] total += item } console.log('总成绩是 ', total) return total } var total = getTotalScore() //平均分 var avg = total / arr.length console.log('平均分 ', parseInt(avg)) //大于平均分成绩 for (var i = 0; i < arr.length; i++) { if (arr[i] > avg) { console.log(arr[i]) } } </script>

总结

以上就是今天要讲的内容,本文仅仅简单介绍了作用域、递归函数、对象、数组的相关知识,递归函数在程序中的使用是非常常见的,它可以很好地简化代码,数组的使用很重要的,它的相关语法都是以后我们经常能用到的。

今天的文章
js第五天_js等待5秒后执行分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/59680.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注