分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

JS函数概念

发布时间:2023-09-06 02:07责任编辑:董明明关键词:暂无标签

函数的概念

1)函数的基本概念和创建方式

创建:

  • function关键字创建代码块
function zxw(a){ ???console.log(a);}

function后面接函数的名字,圆括号是要传入函数的参数,函数体在大括号里。

  • 函数表达式
var zxw = function(a){ ???console.log(a);}

这是用变量赋值的写法将匿名函数赋值给变量,如果在加上了函数名,那只有在这函数体内部有效,函数体外部是无效的。

调用和return语句:

要调用函数时,写上函数名后面在加圆括号就可以调用了

function add(a,b){ ???return a+b;}add(1,2)

上面函数圆括号内里的就是这个函数的参数,在调用add这个函数时将数值1和2带入进去。

函数体内部的return语句表示的是返回,当JavaScript遇到这个语句,就直接返回这个语句后面的值,就算后面还有语句也不会执行。return语句所带的那个表达式就是函数的返回值,如果没有return语句那这个函数就不会有任何输出,返回的是undefined。

函数可以自己调用自己,这个就叫递归。

2)函数名提升

JavaScript 引擎将函数名视同变量名,在用function命令声明函数时,整个函数会像变量声明一样,被提升到代码头部:

f();function zxw(){ ???console.log(‘zxw‘);}

 虽然先执行了f函数,但由于函数提升,函数f被提升到了代码头部,所以在被调用前就声明了。

只有用函数声明的方式才存在函数提升,如果用函数表达式的方式,JavaScript就会报错。

f1();var f1 = function(){} ??//undefined

3)参数

传递方式:

JavaScript中数据类型一般分为2类:

  • 原始类型:存储在栈(stack)中的简单的数据,它们的值直接存储在变量访问的位置。
  • 引用类型:存储在堆(heap)中的对象,存储在变量处的值是一个指针(point),指向存储对象的内存地址。

这2种内存分配机制也导致传递参数的方式也不同

  • 传入的参数为原始类型:只是把变量的值传递给参数,后面无论怎么修改参数和变量都不会互相影响。
  • 传入的参数为引用类型:当传入的参数是引用类型的时,此时传入函数的是原始值的地址,因为对象变量它里面的值是这个对象在堆内存中的内存地址,所以在函数内部修改参数的话就会影响到原始值。

arguments对象:

说起参数,还要说到arguments对象,它可以读取函数体内部的所有参数

function f(d){ ???console.log(arguments); ?//函数参数的集合 ???console.log(arguments.length); ?//传递参数的个数}

arguments对象的格式很想数组,但它不是数组,所以数组的方法不能用在arguments对象上

总结下,函数在JavaScript中作为第一等公民,它被看做一种值,凡是可以使用值的地方就可以使用函数。我们可以将函数赋值给对象或对象的属性,也可以当做参数传入其他函数,或者作为函数的结果返回。

JS函数概念

原文地址:https://www.cnblogs.com/ianyanyzx/p/9589394.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved