函数简介

函数
函数也是一个对象
函数中可以封装一些功能(代码),在需要时可以指向这些功能(代码)
函数中可以保存一些代码在需要时调用
使用typeof检查一个函数对象时,会返回function
创建一个函数对象,我们在开发中很少使用构造函数来创建一个函数对象
可以将要分装代码以字符串的形式传递给构造函数
封装到函数中的代码不会立刻执行函数中的代码会在调用时执行
调用函数语法:函数对象()
当调用时,函数中封装的代码会按照顺序执行
函数对象具有所有普通对象的功能但是比普通对象更加强大

var fun = new Function("console.log('这是我第一个函数');");
fun.hello = "你好";
console.log(fun.hello)
fun();

使用 函数声明来创建一个函数
语法:
function 函数名([形参1,形参2,形参3....形参n]){
语句...
}

function fun2(){
console.log("这是我的第二个代码")
}
console.log(fun2)
fun2()

使用一个函数表达式来创建一个函数

语法
var 函数名 = function(){
语句...
}

var fun3 = function(){
console.log("这是我的第二个代码")
};
fun3()

函数的参数

定义一个用来求两个数的和的函数
可以在函数的()中指定一个或者多个形参(形式参数)
多个形参之间使用,号隔开声名形参就行相当于在函数内部声名了对应的变量
但是并不赋值,在调用函数时可以在()中指定实参(实际参数),实参将会赋值给函数中的对应的形参
调用函数时解析器不会检查实参的类型,也不会检查实参的数量如果实参的是数量少于形参的数量,则没有对应的形参将是undefined

function fun4(a,b){
console.log(a+b);
}
fun4(5,5)
fun4(5,"吃了没")
fun4(5,true)
fun4(0,0,6666)

函数的返回值

创建一个函数,用来计算三个数的和,可以使用return来设置函数的返回值 语法:
return 值;
return后的值可以作为函数执行结果返回,return后的语句全部都不会执行
我们可以定义一个变量,来接收该结果
如果return后不跟任何值就会返回undefined

function sum(a,b,c){
d = a + b + c;
return d;
alert(555);
}
var result = sum(1,2,3);
console.log(result)

实参可以使任何值
定义一个函数,判断数字是否是偶数,如果是就返回true,否则就返回false

function oushu(a){
return a%2 == 0;
} console.log(oushu(9));

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

3.14*r*r

function mj(r){
return 3.14*r*r;
}
console.log(mj(10));

创建一个函数,可以在控制台中输出一个人的信息
可以输出的name age gender address
实参可以使任意数据类型也可以是一个对象
实参可以是任意的数据类型,也可以是一个对象
当我们参数过多时,可以将参数封装到一个对象中,然后通过对象传递

function xinxi(o){
console.log("我是"+o.name+"今年我"+o.age+"我是一个"+o.gender+"人"+"我住在"+o.address)
} var sun = {}
sun.name="悟空";
sun.age=18;
sun.gender="男";
sun.address="花果山";
var obj = {
name:"孙悟空",
age:18,
gender:"男",
address:"花果山"
}
xinxi(sun)

实参可以是一个对象,也可以是一个函数

function sayhello(o){
console.log("我是"+o.name+"今年我"+o.age+"我是一个"+o.gender+"人"+"我住在"+o.address)
console.log(555)
}
var obj = {
name:"孙悟空",
age:18,
gender:"男",
address:"花果山"
}
sayhello(obj)
function fun(a){
console.log("a= "+a)
a(obj) }
fun(sayhello)

另一种写法同上

function fun(a){
console.log("a= "+a)
}
fun(function(){alert(5555)});
fun(function(){alert(5555)}());

函数返回值

mj()

调用函数
相当于使用函数的返回值
mj
是函数对象
相当于使用的函数对象

function mj(r){
return 3.14*r*r;
}
// console.log(mj(10));
function fun(a){
console.log("a= "+a)
}
fun(mj(10));

break,continue,return 在函数和for中之间的关系

function fun() {
console.log("开始")
for (var i=0; i<=5; i++) {
if (i==2) {
使用break;可以退出当前循环
break; 使用continue;可以跳过当次循环
continue; 使用return;可以结束整个函数循环
return;
}
console.log(i)
}
console.log("结束")
}
fun()

返回值可以是任意的数据类型
也可以是个对象

function fun1(){
var a={
name:"张三"
};
return a;
}
console.log(fun1())

也可以是函数

function fun(){
function fun2(){
console.log(5555)
}
return fun2;
}
console.log(fun())
fun()()

 

立即执行函数

立刻执行函数语法

(function(a) {
console.log(a);
})(99)

方法

创建一个对象,向对象中添加属性属性可以任何数据类型,对象属性也可以是一个函数

函数也可以成为对象的属性 当函数变成对象的属性之后还有另一个名字

如果一个函数作为一个对象的属性保存,那么我们称这个函数是这个对象的方法,调用函数就是调用对象的方法(method)但是只是名称上面的区别

var a={
name:"张三",
hanshu:function obj(){console.log(888);}
};
a.hanshu1 = function obj(){console.log(999);};
console.log(a.hanshu)
a.hanshu1()

JS 函数基础的更多相关文章

  1. js函数基础回顾

    回头又跑去看了下尚硅谷的js基础视频 https://www.bilibili.com/video/av22958172/?p=51. 便做了如下笔记: 1.函数也是一个对象 2.函数可以封装一些功能 ...

  2. js函数基础知识

    [函数的声明及调用] function 函数名(参数1,参数2,....){ //函数体代码 return返回值: } 1.函数的调用: ①直接调用:函数名(参数1的值,参数2的值,....) ②事件 ...

  3. js 函数基础(方便复习使用)

    // 函数声明: function bbq(){ // ..... } // 函数表达式: // 1.命名函数表达式 var test = function abc(){ document.write ...

  4. JS函数基础

    一.函数 1.函数是什么 具有特定功能的n条语句的封装体. 只有函数是可执行的,其它类型的数据是不可执行的. 函数也是对象. 2.为什么要用函数 提高代码复用 便于阅读和交流 3.如何定义函数 函数声 ...

  5. Js函数function基础理解

    正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...

  6. 100多个基础常用JS函数和语法集合大全

    网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write(""); 2.JS中的注释为//3.传统 ...

  7. JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)

    函数声明 JavaScript中声明函数的方式:(无需声明返回值类型) function add(i1, i2) {             return i1 + i2;//如果不写return返回 ...

  8. 基础常用JS函数和语法

    100多个基础常用JS函数和语法集合大全  来源:http://www.cnblogs.com/hnyei/p/4605103.html 网站特效离不开脚本,javascript是最常用的脚本语言,我 ...

  9. (day65、66)Vue基础、指令、实例成员、JS函数this补充、冒泡排序

    目录 一.Vue基础 (一)什么是Vue (二)为什么学习Vue (三)如何使用Vue 二.Vue指令 (一)文本指令 (二)事件指令v-on (三)属性指令v-bind (四)表单指令v-model ...

随机推荐

  1. C++学习笔记-异常处理

    程序设计的要求之一就是程序的健壮性.希望程序在运行时能够不出或者少出问题.但是,在程序的实际运行时,总会有一些因素会导致程序不能正常运行.异常处理(Exception Handling)就是要提出或者 ...

  2. C学习笔记-流程控制

    常用的流程图符号 起止框用于表示流程的开始或结束: 输入/输出框用平行四边形表示,在平行四边形内可以写明输入或输出的内容: 判断框用菱形表示,它的作用是对条件进行判断,根据条件是否成立来决定如何执行后 ...

  3. arm-linux-ar常见用法

    1)     创建test.a静态库 arm-linux-gcc  -c  a.o  a.c arm-linux-gcc  -c  b.o  b.c arm-linux-ar  -rc  test.a ...

  4. redis5.0 数据结构与命令

    1.redis 支持如下5种数据结构 数据结构 说明 简介 String 字符串 key-val Hash 哈希 filed-val 映射表 List 列表 双向链表 Set 集合 element(元 ...

  5. SQLite基础-3.语法与数据类型

    目录 一.SQLite语法 1. 大小写敏感性 2. 注释 3. SQLite语句 二. SQLite 数据类型 1. Boolean 数据类型 2. Date 与 Time 数据类型 一.SQLit ...

  6. Python面试常考点之深入浅出链表操作

    Python面试常考点之深入浅出链表操作 在Python开发的面试中,我们经常会遇到关于链表操作的问题.链表作为一个非常经典的无序列表结构,也是一个开发工程师必须掌握的数据结构之一.在本文中,我将针对 ...

  7. Boot-crm管理系统开发教程(三)

    (ps:前两章我们已经把管理员登录和查看用户的功能实现了,那么今天我们将要实现:添加用户,删除用户,和修改用户功能) 由于Cusomer的POJO类型已经写好了,所以这次我们之前从CustomerCo ...

  8. poj 2226 Muddy Fields (二分图)

    大意:给定n*m网格, 每个格子为泥地或草地, 可以用一些长度任意宽度为1的木板盖住泥地, 要求不能盖到草地, 求最少要多少块木板能盖住所有泥地. 最小点覆盖板子题, 建图跑最大匹配即可. #incl ...

  9. CentOS6.8安装Python3.6.3

    1.linux下安装python3 准备编译环境(环境如果不对的话,可能遇到各种问题,比如wget无法下载https链接的文件) yum install zlib-devel bzip2-devel ...

  10. 【web性能优化】当用户输入网址后发生了什么?

    简单叙述 这个过程可以大致分为两个部分:网络通信和页面渲染. 一.网络通信 互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信.分层由 ...