06JavaScript基础

核心知识点

  1. 函数
    2. 函数中的参数
    2. 函数中的返回值

今日学习目标

  1. 能够完成函数相关案例
    2. 能够理解函数中的参数
    2. 能够理解函数中的返回值

函数

为什么要学函数?

 1.求 1到100之间的数字之和

什么是函数?

函数的概念

  函数: 可以封装一段特定功能代码,然后通过函数名调用,实现对该段代码重复使用

函数的作用

实现代码的重复使用。
✔ 对分散代码整合(封装)
✔ 重复使用

创建函数

方式一: 函数声明及执行方式(推荐)

☞ 函数的声明:function  自定义函数名() {具体的功能代码}
注意:1. 由于函数是用来实现某种特定功能代码,所以一般我们设置函数名的时候,以动词开始。2. 函数不能自己执行代码,需要通过函数名调用实现代码的执行☞ 调用函数(执行函数)函数名();  //函数的调用

方式二:函数表达式(字面量)及执行方式(了解)

var  fn = function () {}   fn();

课堂一练

1. 将比较数字大小封装到一个函数中
2. 写一个函数,求1-100之间所有数的和
3. 通过函数方式实现:判断一个数字是基数还是偶数
4. 通过函数的方式实现: 在页面中打印一个10行直角三角形
5. 格式化日期的封装    yyyy-mm-dd  hh:mm:ss

函数的参数

 思考: 利用函数如何计算任意两个数字之和?

形参

在 函数创建时,在小扩号中定义的变量语法:
function 函数名(形参,形参,形参...) {//形参,就是一个占位符,命名规则和规范和变量一样//函数体
}注意:1 函数也可以做为参数进行传递

实参

实参,在函数调用时,在小扩号中所传入的实际的数据。语法:
函数名(数据,数据,数据...);   //实参,就是实际的数据

课堂一练

☞ 求 n - m 之间的数字之和    ☞ 求圆的面积  (3.14 * r*r)☞ 求3个数中的最大值  ☞ 判断一个数是奇数还是偶数  ☞ 求5个数的总和

函数的返回值

 思考: 如何在函数外面获取到上面代码计算出的任意两个数之和?

返回值:函数执行完后,可以把执行的结果 通过 return 语法 返回给 调用者

function add(num1,num2){//函数体
return num1 + num2; // 注意:return 后的代码不执行
}
var resNum = add(21,6); // 调用函数,传入 两个实参,并通过 resNum 接收函数返回值
alert(resNum);// 27注意:1. 如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined2. 如果函数中写了return语句,后面没有写任何其他内容,那么函数的返回值依然是 undefined3. 一个函数只能有一个返回值4. return 代码执行完成后,后面的代码不再执行5. 函数也可以作为返回值(理解)

课堂一练

1.获取数组中最大值,并返回2.将一个数组中所有偶数添加到一个新数组中返回,并计算新数组总和。3 写一个函数,判断是否是闰年【能被4整除且不能被100整除,或者能被400整除】

课后练习

1. 写一个函数,实现对数字数组的排序。
2. 写一个函数,用户输入任意两个数字,获取最大值并返回 统计班级学生就业薪资,计算总薪资 和 平均薪资。统计班级学生就业薪资,计算薪资超过15000的人的个数。给一个不重复的数字数组,求最大值和最大值的在数组中的位置给一个字符串数组,将数组中的每一个数据拼接在一起,每个数据之间用 | 符合拼接。 如: ‘张三|李四|王五’给一个数字数组,该数组中有很多数字0,将不为0的数据存入到一个新的数组中

函数其他部分

arguments的使用

☞ 思考: 1. 如果一个函数的参数个数不确定该如何获取?2. 演示console.log()中不同个数参数的效果3. 介绍arguments对象☞ 通过 arguments获取到函数参数的个数 【不确定函数到底有多少个参数】☞ 总结:1. 如果函数参数不确定,可以定义函数的时候不写参数,通过arguments获取2. 如果函数的参数确定,那么推荐定义函数的时候写参数课堂案例:1. 求任意个数中的最大值2. 求任意个数的和

匿名函数和自调用函数

☞ 匿名函数: 没有函数名的函数
例如:
var  fn = function () {}
☞总结:1. 匿名函数不能单独使用2. 可以将匿名函数赋值给一个变量3. 可以让匿名函数自己调用自己(自调用函数【匿名函数】)☞ 自调用函数: 函数封装好,立即执行。总结:1. ( function () {} )();
☞ 函数属于一种数据类型
☞ 函数作为参数
☞ 函数可以为返回值

函数作用域及局部变量

作用域

☞ 思考: 在函数内部定义的变量,在函数外部能否访问该变量作用域: 变量或者函数可以起作用的区域◆ 全局作用域(全局变量)1,在script标签中或者js文件中定义的变量,在任何地方都可以访问2,在函数内部声明变量不使用var关键字 (不建议使用)◆ 局部作用域(局部变量)1, 在函数内部定义的变量2, 局部变量只能在定义变量的函数中使用◆ 块级作用域 (目前所学版本没有,新版本语义中有块级作用域){块级作用域}  1. 本质上块级作用域中的变量在外部不能访问2. 但是在js中可以访问块级作用域的变量(证明js没有块级作用域)

全局作用域(全局变量)

声明在所有函数外部的变量,可以所有地方使用

局部作用域(局部变量)

声明在某个函数内部的变量或函数的形参,只能在函数内部使用

作用域链

作用域链:当访问一个变量时,会先从本作用域中去找这个变量,若找不到则向上一级作用域中去找,依次类推,就形成了一个作用域链。

作用域链面试题

☞ 分析代码执行结果var a = 1;function fn1(){var a = 2;function fn2(){console.log(a);   //a的值 }fn2()}fn1();☞ 分析代码执行结果function  f1 () {var num = 123;function f2 () {console.log( num );}f2 ();} var  num = 456;f1();

代码预解析

☞ 代码在执行前会进行预解析。1. 变量声明提升,把变量提升到当前作用域的最上面,不包括赋值2. 函数声明提升,把函数提升到当前作用域的最上名,不包括函数的调用

javaScrip第五天(1)相关推荐

  1. (五)Struts2 标签

    所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:Struts2 标签简介 Struts2 自己封装了一套标签,比JSTL ...

  2. 【软考软件评测师】第五章节 安全测试测试方法

    [软考软件评测师]第五章节 安全测试测试方法 第五章节 安全测试测试方法 [软考软件评测师]第五章节 安全测试测试方法 第一部分 知识点集锦 1.常见安全攻击手段并简要说明 2.基本的安全性测试方法 ...

  3. 为什么你挖不到漏洞,阿里P8架构师亲授秘籍(五千字详解)

    你为什么挖不到漏洞 你是不是在为学不会安全而烦恼? 你是不是在为挖不到漏洞而沮丧? 你是不是为实战挖洞毫无思路而丧失信心? 不要悲伤,不要心急忧郁的日子总会过去.假如生活欺骗了了你,不要沮丧,因为生活 ...

  4. JavaScrip笔记心得(持续更新)

    JavaScrip笔记心得 一.JavaScript简介 1.JavaScript 2.JavaScript使用方法 3.JavaScript 的核心构成 4.Javascript的代码注释 5. J ...

  5. XSS入门 XSS Challenges靶场搭建/前五关/基础教程

    前面写了很多XSS漏洞的利用,这一章开始重点在XSS漏洞的挖掘和如何注入script代码上,和sql注入相类似 目录 一.实验环境--XSS Challenges 二.探测XSS过程 第一关 第二关 ...

  6. JavaScrip学习笔记

    JavaScrip学习笔记 文章目录 一.JS两种构造函数的方法 二.对象的定义 三.原型与原型链 四.内置对象 五.时间 六.数组对象 六.DOM对象 一.JS两种构造函数的方法 var arr=f ...

  7. JavaScrip 基础 第三篇

    JavaScrip 基础 第三篇 JS分支结构 流程控制 在一个程序执行的过程中 ,各条代码执行顺序对程序结果是有直接影响的,很多时候需要通过控制代码 执行顺序来实现完成的功能 简单理解:流程控制就是 ...

  8. 五分钟搭建一个基于BERT的NER模型

    BERT 简介 BERT是2018年google 提出来的预训练的语言模型,并且它打破很多NLP领域的任务记录,其提出在nlp的领域具有重要意义.预训练的(pre-train)的语言模型通过无监督的学 ...

  9. Spring Data JPA 五分钟快速入门和实践

    Spring Data JPA(类似于Java Web 中的 DAO) 操作声明持久层的接口(Repository) 三个核心接口: CrudRepository PagingAndSortingRe ...

最新文章

  1. nginx配置参数详解
  2. AWS无服务开发Lambda系列之本地上传包至Lambda
  3. Spring-国际化信息02-MessageSource接口
  4. hive 表存储大小_Hive中文件存储格式及大小比较测试
  5. Android SDK镜像的介绍使用【转发】
  6. 反应堆Reactor
  7. css随机数,在LESS CSS中生成随机数?
  8. cacti批量添加脚本
  9. linux mysql jdk路径配置,Linux下的jdk1.5+eclipse+mysql开发环境配置的经验总结
  10. 报表架构 jasperReports+iReport使用说明
  11. Mac隐藏技巧:右键点按,在访达中玩出点新花样
  12. 关于合格工程师素养的一些思考
  13. UIControl 详解
  14. 产品读书《交互设计沉思录》
  15. 三星数据被黑客泄露、罗马尼亚加油站网络遭勒索攻击|3月8日全球网络安全热点
  16. 蓝牙小票机php接口,Android蓝牙打印小票,仿美团外卖小票打印
  17. oracle mysql 同义词_Oracle数据库同义词
  18. CE游戏修改器制作游戏修改器傻瓜教程
  19. RT-Thread Studio 使用笔记(六)| 获取光传感器数据(I2C设备驱动+BH1750手写驱动代码分享)
  20. 从广告图到广告落地页

热门文章

  1. Zookeeper集群搭建(配置详解)
  2. YoloAll V2发布,集成所有主流Yolo模型于一身
  3. 发光强度/光通量/光照度/亮度/坎德拉/流明/勒克斯/尼特之间的关系和换算
  4. docker+selenium web自动化测试环境的部署
  5. 美国人口普查年收入比赛_训练网络对收入进行分类:成人普查收入数据集
  6. 全志A33-linux内核early_printk分析及使用
  7. 银行理财不再保本保息,你还敢买吗?
  8. 提升.NET应用程序启动速度
  9. SRX alarm: Autorecovery information needs to be saved
  10. java ee 上传文件_17.《JavaEE 学习笔记》Servlet 上传文件