javaScrip第五天(1)
06JavaScript基础
核心知识点
- 函数
2. 函数中的参数
2. 函数中的返回值
今日学习目标
- 能够完成函数相关案例
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)相关推荐
- (五)Struts2 标签
所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:Struts2 标签简介 Struts2 自己封装了一套标签,比JSTL ...
- 【软考软件评测师】第五章节 安全测试测试方法
[软考软件评测师]第五章节 安全测试测试方法 第五章节 安全测试测试方法 [软考软件评测师]第五章节 安全测试测试方法 第一部分 知识点集锦 1.常见安全攻击手段并简要说明 2.基本的安全性测试方法 ...
- 为什么你挖不到漏洞,阿里P8架构师亲授秘籍(五千字详解)
你为什么挖不到漏洞 你是不是在为学不会安全而烦恼? 你是不是在为挖不到漏洞而沮丧? 你是不是为实战挖洞毫无思路而丧失信心? 不要悲伤,不要心急忧郁的日子总会过去.假如生活欺骗了了你,不要沮丧,因为生活 ...
- JavaScrip笔记心得(持续更新)
JavaScrip笔记心得 一.JavaScript简介 1.JavaScript 2.JavaScript使用方法 3.JavaScript 的核心构成 4.Javascript的代码注释 5. J ...
- XSS入门 XSS Challenges靶场搭建/前五关/基础教程
前面写了很多XSS漏洞的利用,这一章开始重点在XSS漏洞的挖掘和如何注入script代码上,和sql注入相类似 目录 一.实验环境--XSS Challenges 二.探测XSS过程 第一关 第二关 ...
- JavaScrip学习笔记
JavaScrip学习笔记 文章目录 一.JS两种构造函数的方法 二.对象的定义 三.原型与原型链 四.内置对象 五.时间 六.数组对象 六.DOM对象 一.JS两种构造函数的方法 var arr=f ...
- JavaScrip 基础 第三篇
JavaScrip 基础 第三篇 JS分支结构 流程控制 在一个程序执行的过程中 ,各条代码执行顺序对程序结果是有直接影响的,很多时候需要通过控制代码 执行顺序来实现完成的功能 简单理解:流程控制就是 ...
- 五分钟搭建一个基于BERT的NER模型
BERT 简介 BERT是2018年google 提出来的预训练的语言模型,并且它打破很多NLP领域的任务记录,其提出在nlp的领域具有重要意义.预训练的(pre-train)的语言模型通过无监督的学 ...
- Spring Data JPA 五分钟快速入门和实践
Spring Data JPA(类似于Java Web 中的 DAO) 操作声明持久层的接口(Repository) 三个核心接口: CrudRepository PagingAndSortingRe ...
最新文章
- nginx配置参数详解
- AWS无服务开发Lambda系列之本地上传包至Lambda
- Spring-国际化信息02-MessageSource接口
- hive 表存储大小_Hive中文件存储格式及大小比较测试
- Android SDK镜像的介绍使用【转发】
- 反应堆Reactor
- css随机数,在LESS CSS中生成随机数?
- cacti批量添加脚本
- linux mysql jdk路径配置,Linux下的jdk1.5+eclipse+mysql开发环境配置的经验总结
- 报表架构 jasperReports+iReport使用说明
- Mac隐藏技巧:右键点按,在访达中玩出点新花样
- 关于合格工程师素养的一些思考
- UIControl 详解
- 产品读书《交互设计沉思录》
- 三星数据被黑客泄露、罗马尼亚加油站网络遭勒索攻击|3月8日全球网络安全热点
- 蓝牙小票机php接口,Android蓝牙打印小票,仿美团外卖小票打印
- oracle mysql 同义词_Oracle数据库同义词
- CE游戏修改器制作游戏修改器傻瓜教程
- RT-Thread Studio 使用笔记(六)| 获取光传感器数据(I2C设备驱动+BH1750手写驱动代码分享)
- 从广告图到广告落地页
热门文章
- Zookeeper集群搭建(配置详解)
- YoloAll V2发布,集成所有主流Yolo模型于一身
- 发光强度/光通量/光照度/亮度/坎德拉/流明/勒克斯/尼特之间的关系和换算
- docker+selenium web自动化测试环境的部署
- 美国人口普查年收入比赛_训练网络对收入进行分类:成人普查收入数据集
- 全志A33-linux内核early_printk分析及使用
- 银行理财不再保本保息,你还敢买吗?
- 提升.NET应用程序启动速度
- SRX alarm: Autorecovery information needs to be saved
- java ee 上传文件_17.《JavaEE 学习笔记》Servlet 上传文件