1、函数的概念

    封装一段可以被重复调用执行的代码块来实现大量代码的重复使用
    2、函数的使用分为两步:声明函数 和 调用函数
    3、声明函数的关键字全部是小写
    4、函数名一般是动词、函数不调用自己不执行
    5、函数的封装
    函数的封装就是把一个或者多个通过函数的方式封装起来,对外只提供一个简单的函数接口

6、形参和实参

    在声明函数的括号里面是形参
    形参是接受实参的
    在调用函数的括号里面是实参
    7、函数的参数可以有,也可以没有不限制个数
    参数的作用:在函数内部的某些值不固定的时候,我们可以通过参数在调用的时候传递不同的值进去

注意:

    多个参数之间逗号隔开
    形参可以看做是不用声明的变量
    如果实参的个数多余形参,会取到形参的个数
    如果实参的个数小于形参,多出来的形参定义为undefined
    8、函数的返回值
    函数这是实现某种功能,最终的结果需要返回给函数的调用者
    只要函数遇到return 就把后面的结果返回给函数的调用者
    9、遇到return会终止函数
    return 只能返回一个值,如果有多个值就只返回最后一个值
    10、我们的函数如果没有return,则返回undefined

break,continue,return区别

    break:结束当前循环体(for,while)
    continue:跳出本次循环,继续执行下次循环(for,while)
    return: 不仅可以退出循环,还能够返回return语句的值,同时还可以结束当前的函数体内的代码
    11、arguments使用
    当我们不确定有多少个参数传递的时候,可以用arguments来获取,arguments存储了传递的使用实参
    只有函数才有arguments
    伪数组具有
    数组的length属性
    按照索引的方式进行存储
    他没有真正数组的方法

12、函数的两种声明方式

    利用函数关键字自定义函数
    function 函数名(){}
    函数表达式(匿名函数)
    var 变量名=function(){}
    变量名()
    变量名不是函数名
    函数表达式调用的时候也可以传递参数
 
     function sum(num1, num2) {
var num = 0;
for (var i = num1; i <= num2; i++) {
num += i;
}
console.log(num);
}
sum(1, 100) // 声明函数
function hello() {
// 函数体
console.log("hello word"); }
// 函数调用
// 函数名()
hello() // 1~100之间的累加和
function getSum() {
var sum = 0;
for (var i = 1; i <= 100; i++) {
sum += i
}
console.log(sum);
}
getSum() // function 函数名(形参1, 形参2) {
// 函数体
// }
// 函数名(实参1, 实参2) // 求任意两个数的和
function getsum(num1, num2) {
console.log(num1 + num2);
}
getsum(1, 6)
// 求任意两个数之间的和
function getsums(start, end) {
var sum = 0;
for (var i = start; i <= end; i++) {
sum += i
}
console.log(sum);
}
getsums(2, 5) // 形参和实参不匹配的问题
function getmax(num1, num2) {
console.log(num1 + num2);
}
getmax(2, 4)
getmax(2, 4, 5)
getmax(2) // return
// function 函数名() {
// return 需要返回的结果
// }
// 函数名()
function getResult() {
return 222
}
console.log(getResult()); // 完善任意两个数的和
function getnum(num1, num2) {
return num1 + num2
}
console.log(getnum(3, 4)); // 求任意两个数的最大值
function getMax(num1, num2) {
// 方法一
if (num1 > num2) {
return num1
} else {
return num2
}
// 方法二
return num1 > num2 ? num1 : num2
}
console.log(getMax(8, 6)); // 求数组中的最大值
// var newArr = [666, 4, 65, 11, 36, 89, 2]
function getArr(arr) { var max = arr[0]
for (var i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i]
}
}
return max
}
console.log(getArr([666, 4, 65, 11, 36, 89, 2]));
// 方法二
var re = getArr([666, 4, 65, 11, 33336, 89, 2])
console.log(re); // 任意两个数的加减乘除
function getResult(num1, num2) {
return [num1 + num2, num1 - num2, num1 * num2, num1 / num2]
}
var look = getResult(1, 3)
console.log(look);
 // 用户任意输入两个数(简单的计算器小功能),并且推出结果
function getCalculator() {
var num1 = Number(prompt("请输入第一个数字"))
var num2 = Number(prompt("请输入第二个数字"))
var choice = (prompt("请输入运算符号"))
if (choice == "+") {
return num1 + num2
} else if (choice == "-") {
return num1 - num2
} else if (choice == "*") {
return num1 * num2
} else if (choice == "/") {
return num1 / num2
}
}
alert(getCalculator()); // 任意输入三个数字,弹出最大值
function getMax() {
var num1 = Number(prompt("请输入第一个数字"))
var num2 = Number(prompt("请输入第二个数字"))
var num3 = Number(prompt("请输入第三个数字"))
var newArr = [num1, num2, num3]
var list = []
newArr.sort(function (a, b) {
return b - a
})
var list = newArr[0]
alert(list);
}
getMax() function fn() {
console.log(arguments); }
fn(1, 2, 3, 4) // 封装一个函数任意翻转数组
function reverse(arr) {
var newArr = []
for (var i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i]
}
return newArr
}
var arr1 = reverse([2, 355, 664, 34, 67, 22])
console.log(arr1); // 利用函数冒泡排序
function arrSort() {
var arr = [5, 66, 99, 4, 11, 5]
for (var i = 0; i <= arr.length - 1; i++) {
for (var j = 0; j <= arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
return arr
}
console.log(arrSort()); // 函数互相调用
function fun1() {
console.log("888");
} function fun2() {
fun1()
}
fun2() // 判断是否是闰年
function isRunYear(year) {
// 如果是闰年返回true,否则返回false
var flag = false;
if (year % 4 == 0 && year % 100 != 0 || year && 400 == 0) {
flag = true
}
return flag
}
console.log(isRunYear(2012)); // 判断用户输入的年份输出二月份天数
function backDay() {
var year = prompt("请输入年份")
if (isRunYear(year)) {
alert("当前是闰年,二月份有29天")
} else {
alert("当前不是闰年,二月份有28天")
}
}
backDay()
 

javascript函数的笔记的更多相关文章

  1. JavaScript权威设计--JavaScript函数(简要学习笔记十一)

    1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScri ...

  2. JavaScript语言精粹读书笔记 - JavaScript函数

    JavaScript是披着C族语言外衣的LISP,除了词法上与C族语言相似以外,其他几乎没有相似之处. JavaScript 函数: 函数包含一组语句,他们是JavaScript的基础模块单元,用于代 ...

  3. HTML 学习笔记 JavaScript (函数)

    函数是由事件驱动的或者当他被调用时执行的可重复使用的代码块 实例 <!DOCTYPE html> <html> <head> <script> func ...

  4. JavaScript模式读书笔记 第4章 函数

    2014年11月10日 1.JavaScript函数具有两个特点: 函数是第一类对象    函数能够提供作用域         函数即对象,表现为:         -1,函数能够在执行时动态创建,也 ...

  5. web前端学习(四)JavaScript学习笔记部分(3)-- JavaScript函数+异常处理+事件处理

    1.Javascript函数-了解函数的用途 1.1.函数: 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块 2.Javascript函数-定义函数 2.1.function必须小写 3. ...

  6. Javascript函数重载,存在呢—还是存在呢?

    1.What's is 函数重载? );//Here is int 10 print("ten");//Here is string ten } 可以发现在C++中会根据参数的类型 ...

  7. JavaScript语言精粹笔记

    JavaScript语言精粹笔记 掌握语言的每个特性可以让你出风头,但是并不推荐,因为一部分的特性带来的麻烦可能远超本身的价值.正如书中所言,坏的材料并不能雕刻出好的作品,要成为一名更好的程序员,要取 ...

  8. JavaScript看书笔记01

    JavaScript看书笔记... ------------------- JavaScript允许var定义语句出现在函数内部的任意位置.JS中使用Var来显示的给变量声明 JavaScript是一 ...

  9. 【MarkMark学习笔记学习笔记】javascript/js 学习笔记

    1.0, 概述.JavaScript是ECMAScript的实现之一 2.0,在HTML中使用JavaScript. 2.1 3.0,基本概念 3.1,ECMAScript中的一切(变量,函数名,操作 ...

随机推荐

  1. python 迭代器(二):迭代器基础(二)可迭代的对象与迭代器的对比

    可迭代的对象 如果对象实现了能返回迭代器的 __iter__ 方法,那么对象就是可迭代的. 序列都可以迭代:实现了 __getitem__ 方法,而且其参数是从零开始的索引,这种对象也可以迭代. &g ...

  2. C#文件说明

    Bin -- 用来存放编译的结果,是默认的输出路径,项目属性—>配置属性—>输出路径. obj -- 用于存放编译过程中生成的中间临时文件.增量编译:项目属性—>配置属性—>高 ...

  3. java大数据最全课程学习笔记(2)--Hadoop完全分布式运行模式

    目前CSDN,博客园,简书同步发表中,更多精彩欢迎访问我的gitee pages 目录 Hadoop完全分布式运行模式 步骤分析: 编写集群分发脚本xsync 集群配置 集群部署规划 配置集群 集群单 ...

  4. JVM系列-方法调用的原理

    JVM系列-方法调用的原理 最近重新看了一些JVM方面的笔记和资料,收获颇丰,尤其解决了长久以来心中关于JVM方法管理的一些疑问.下面介绍一下JVM中有关方法调用的知识. 目的 方法调用,目的是选择方 ...

  5. linux目录结构 主流Linux发行版的目录结构

    目录 目录结构 一般教学的目录 CentOS7 openSUSE15.1 Ubuntu18.04 详细说明: /dev目录 /etc目录 /proc目录 /usr目录 /var目录 比较重要的目录 文 ...

  6. 紧急处理RAC环境有一个监听down 的情况

    初步处理 1. grid 登录查看是监听是否down掉 srvctl status listener -n node1 或者oracle登录 lsnrctl status 查看 如果掉了 grid 用 ...

  7. 不藏了,摊牌了,一张知识图谱整理完整Java并发体系,就问全不全

    推荐阅读: 2020年马士兵Java多线程高并发讲解——百万年薪架构师告诉你Java多线程与高并发 目录 这是我关于整个Java并发体系的整理,结合的主要是现在市面上对于Java并发在面试的过程中经常 ...

  8. JQuery如何在验证表单失败的情况下阻止表单提交

    自定义验证时,使用了return false和event.preventDefault(),但是验证失败之后表单还是提交了 这个问题我也碰到了,尝试了多次也没有用,在调试的时候也发现确实return了 ...

  9. Makefile中的一个坑

    问题描述:Makefile中,我想将一个变量的后缀全部进行替换,如将所有的.c后缀变成.d后缀 方法:$(CUR_SOURCE: .c = .d ) 说明:查阅相关资料,了解到上述这种语法就可以将所有 ...

  10. 面试时谈得很好,为什么就是拿不到offer?

    招聘行业有个共识,那就是如果没有给通知一般就是没有通过, 有的学员会问,为什么不打电话通知一下呢? 我猜测,有一方面的原因是怕尴尬,虽然你不觉得尴尬,但是难保有的应聘者会情绪激动,问东问西. 比如你告 ...