| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> Web前端开发工程师知识体系_5_JavaScript基础(三) -> 正文阅读 |
|
[JavaScript知识库]Web前端开发工程师知识体系_5_JavaScript基础(三) |
????????本期的重点为JS中的函数(function)以及变量作用域和全局作用域的区分。 第一部分 函数? ? ? ??????????函数是一个功能体,提供若干个数据,返回处理结果用于封装重复执行的代码。有系统函数和自定义函数之分。 一、系统函数 ????????转数值Number ( )、转整型praseInt ( )、转浮点型parseFloat ( )、警示框alert ( )、输入款prompt ( ) 等都属于系统函数,此外还有: 二、自定义函数的创建 1.创建普通函数
?????????PS:函数体就是封装的重复执行的代码;创建函数以后,函数体的代码不会执行,函数每调用一次,代码才会执行一次。 2.创建带有参数的函数
????????PS:?实参会赋值给形参,实参的数量和形参的数量可以不同,如果形参未被赋值则为undefined。 3.创建带有返回值的函数
?????????PS:return后的值为返回值,该值是什么,调用函数后的结果就是什么,如果函数中没有return或者return后不加任何值,则返回结果为undefined,return执行后,就会结束函数的执行而且它能直接放到一个表达式的内部。 ? ? ? ? return与break的区别:return用于函数中,结束函数的执行。break用于循环或者switch-case,结束循环或者switch-case的执行。 三、递归 ? ? ? ? 递归是指在函数内部调用自身这个函数,默认是一个死循环。在使用时需要有边界条件,要结合return使用。如下,通过一道例题来解释:
PS:斐波那契数列,第一项和第二项为1,从第三项开始每项的值为前两项之和,如:1,1,2,3,5,8,13,21...... 首先创建带有参数n的函数fib,n代表数列的第n项,因为斐波那契数列的前两项为1,所以判断n为1或者n为2时返回1。除前两项之外,剩余的返回该项的前两项之和即(n-1)项和(n-2)项之和。直接调用fib(n-1)+fib(n-2)就是使用了递归的思想,调用函数本身。 函数的递归需要注意一点:JavaScript的运行特点是单线程,无法充分利用CPU的内核,深层次的递归嵌套JS则会非常缓慢,所以递归并不是在任何情况下都适用。 四、匿名函数 ????????匿名函数就是没有函数名称的函数function ( ){ } 1.创建匿名函数
对比匿名函数和函数名称( ): 2.匿名函数的自调用
匿名函数自调用的目的是创建一个函数作用域,防止全局污染。全局污染:全局变量访问范围大,对其他变量带来的影响。 举例:
函数体中变量num的值为2,进行自调用后打印num。 3.回调函数 将函数以参数的形式传递,传递的这个函数就是回调函数。如下:
?第二部分 作用域????????全局作用域:在函数以外的就是全局作用域,声明的变量为全局变量,在任意的作用域下都可以访问到全局变量。 ????????函数作用域:在函数内的为函数作用域,声明的变量为局部变量,局部变量只能在当前的作用域下访问到。在函数作用域下又有全局函数与局部函数之分,在全局作用域下创建的函数就是全局函数,可以在任意作用域下访问;在局部作用域下创建的函数就是局部函数,只能在当前作用域下访问。 不懂没关系,上程序:
????????在函数以外的就是全局作用域,所以声明的变量a就是全局变量。函数s和h以内的为函数作用域,所以在它们内部声明的变量b、c全部为局部变量。a为全局变量,即使在函数s的作用域下进行打印依然能够成功,因为它是全局变量。而b和c均为局部变量,只有才函数以内打印才能成功。 下期:JavaScript基础_对象 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/22 23:56:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |