一、 函数

函数可以封装一段特定功能的代码,然后通过函数名可以重复调用

1 .函数的定义

  1. funcation 函数名 (){
  2. 函数体
  3. }
  4. 函数名() 调用函数

2. 函数的参数

  1. funcation fun (形参1,形参2...) {
  2. 函数声明
  3. }
  4. fun(实参1, 实参2...)

在函数内部修改形参的值,不会影响外部的实参的值

素数 (只能被1和自身整除的数)

3. 函数返回值 return

  1. 当函数中不写return的时候 返回的值是undefined
  2. 写了return后面没跟具体值也是返回undefined

4. arguments

通过arguments可以获取函数调用的时候的实参, (实参个数不确定的时候)

  1. function getMax() {
  2. var max = arguments[0];
  3. for (var i = 0; i<arguments.length; i++) {
  4. if (max < arguments[i]) {
  5. max = arguments[i];
  6. }
  7. }
  8. return max;
  9. }
  10. var retult = getMax(23,53,22,35,222,33,553);
  11. console.log(retult);

求斐波那契数列中的第n个数是多少?

  1. function getFib(n) {
  2. var n1 =1;
  3. var n2 =1;
  4. var n3;
  5. for (var i = 3; i<=n; i++) {
  6. n3 = n1 + n2;
  7. n1 = n2;
  8. n2 = n3;
  9. }
  10. return n3;
  11. }
  12. var num = getFib(6);
  13. console.log(num);

二、匿名函数

1. 匿名函数声明

  1. 1. 函数声明 -命令函数
  2. function fn() {
  3. }
  4.  
  5. 2. 函数表达式 - 匿名函数
  6. var fn = function () {
  7. }

2. 用法

  1. 1. 将匿名函数赋值给一个变量, 这样就可以通过变量进行调用
  2. 2. 匿名函数自调用
  3. 自调用函数: 当函数书写完成之后立即调用
  4. (function () {
  5. console.log('我是自调用函数')
  6. })()
  7.  
  8. 3. 函数也是一种数据类型
  9. var fn = function() {
  10. console.log('我是传过来的函数')
  11. }
  12.  
  13. function test(fun) {
  14. fun();
  15. }
  16. test(fn);
  17. 3.1 因为函数是一种数据类型所以可以作为另一个函数的参数
  18. 3.2 因为函数是一种数据类型, 所以函数可作为另一个函数的返回值
  19.  
  20. function test(a) {
  21. var b =5;
  22. return function () {
  23. console.log(a + b);
  24. }
  25. }
  26. var fn = test(2);
  27. fn();

代码规范:

  1. 1. 命名规则
  2. 变量、函数的命名必须有意义
  3. 变量的名称一般用名词
  4. 函数的名称一般用动词
  5. 2. 变量规范
  6. 操作符的前后要有空格
  7. 3. 注释规范
  8. // 这里是注释
  9. 4. 空格规范
  10. if for 小括号前后都要有空格, 分号后面也要有一个空格
  11. 5. 换行规范
  12. 花括号起始的要跟定义的在一行

三、 作用域

  1. 变量或者函数可以起作用的访问
  2.  
  3. 全局作用域: script 标签中 或者一个独立的js文件中,在任何位置都可以访问
  4. 局部作用域: 任何一个函数的内部都有一个局部作用域,在局部作用域中定义的变量叫局部变量,只能在该定义的函数中才能访问
  5. 块级作用域: ECAMScript中没有块级作用域
  6. 代码块{
  7. 代码块可以单独存在
  8. }
  9.  
  10. 局部变量: 当这个函数执行完之后 内存会被回收
  11. 全局变量: 只有当关闭浏览器的时候 才会被回收
  12.  
  13. 作用域链:
  14. // 全局作用域-- 0级作用域链
  15. var num = 5;
  16. function f1() {
  17. // f1 局部作用域 -- 1级作用域
  18. var num = 15;
  19. function f2() {
  20. // f2 局部作用域 -- 2级作用域链
  21. console.log(num);
  22. }
  23. f2()
  24. }
  25. f1()

四、预解析

  1. 1. 变量提升,把变量声明提升到当前作用域的最上面,不包括变量的赋值
  2. 2. 函数提升,把函数声明提升到当前作用域最上面,不包括函数调用
  3. 在预解析的过程中如果函数的变量的名字相同,此时函数优先

js入门之函数的更多相关文章

  1. js入门关于函数

    一,函数·关键字(function)复习var·js关键字.用于声明变量.生命在内存模块完成,定义(=)在执行模块完成.var(可以在内存模块提前完成,所以有变量提升的功能.function也是js的 ...

  2. React.js入门笔记

    # React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...

  3. React Native 系列(一) -- JS入门知识

    前言 本系列是基于React Native版本号0.44.3写的,最初学习React Native的时候,完全没有接触过React和JS,本文的目的是为了给那些JS和React小白提供一个快速入门,让 ...

  4. 以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明

    以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明 为了让你的Ðapp运行上以太坊,一种选择是使用web3.js library提供的web3.对象.底层实 ...

  5. 【JavaScript】——JS入门

    结束XML之旅,開始JavaScript的学习,看视频.了解了她的前世今生,还是为她捏了把汗啊! 看了部分视 频了,简单的总结一下吧! JavaScript是什么? JavaScript是一种基于面向 ...

  6. App开发Native.js入门指南

    概述 Native.js技术,简称NJS,是一种将手机操作系统的原生对象转义,映射为JS对象,在JS里编写原生代码的技术.如果说Node.js把js扩展到服务器世界,那么Native.js则把js扩展 ...

  7. d3.js 入门指南 - 仪表盘

    D3的全称是Data-Driven Documents(数据驱动的文档),是一个用来做数据可视化的JavaScript函数库,而JavaScript文件的后缀通常为.js,所以D3被称为D3.js. ...

  8. Vue.js 入门:从零开始做一个极简 To-Do 应用

    Vue.js 入门:从零开始做一个极简 To-Do 应用 写作时间:2019-12-10版本信息:Vue.js 2.6.10官网文档:https://cn.vuejs.org/ 前言  学习 Vue ...

  9. 《Three.js 入门指南》3.1.2 - 一份整齐的代码结构以及使用ORBIT CONTROLS插件(轨道控制)实现模型控制

    3.1.2 正式代码结构 & ORBIT CONTROLS插件(轨道控制) 说明 本节内容属于插入节,<Three.js入门指南>这本书中,只是简单的介绍了一些概念,是一本基础的入 ...

随机推荐

  1. vmware安装密钥

    VMware虚拟机已升级至14版本,之前的12版本的秘钥已经无法使用,在此分享一下VMware Workstation 14永久激活密钥: CG54H-D8D0H-H8DHY-C6X7X-N2KG6 ...

  2. Spring Cloud(6.3):搭建OAuth2 Resource Server

    配置web.xml 添加spring-cloud-starter-security,spring-security-oauth2-autoconfigure2个依赖. <!-- Spring c ...

  3. react 问题记录三

    7.三元表达式 是否显示提交按钮(值运算用一对大括号包起来): {this.state.isTrue ? <FormItem style={{textAlign: 'right',marginT ...

  4. Java基础教程:IDEA单元测试

    Java基础教程:IDEA单元测试 环境配置 使用idea IDE 进行单元测试,首先需要安装JUnit 插件. 安装JUnit插件步骤 File-->settings-->Plguins ...

  5. spring mvc 后端获得前端传递过来的参数的方法

    1.通过HttpServletRequest 获得 HttpServletRequest.getParameter(参数名),可以获得form表单中传递的参数,或ajax或url中传递过来的参数,如果 ...

  6. (2) laravel App目录结构说明

    应用的核心代码位于 app 目录下,默认情况下,该目录位于命名空间 App 下, 并且被 Composer 通过 PSR-4自动载入标准 自动加载. app 目录下包含多个子目录,如Console.H ...

  7. 49.Django起步学习

    django起步 django安装 pip install django==2.0.4(版本号) pip install django 默认安装最新版本 创建项目 django-admin start ...

  8. web前端常用meta整理

    标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的.它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 web 服务. 页面关键词 <meta ...

  9. RAID(独立磁盘冗余阵列)

    Raid ​ RAID 独立磁盘冗余阵列,在本科学习时候学习过,记不清是组成原理还是操作系统,当时理解的不太清楚,现在研究生期间做存储相关项目,涉及到了Raid,于是查各种博客,为了以后便于后期查阅, ...

  10. 路由器01---k2刷Pandora

    1.固件 固件(Firmware)就是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序. 对于独立可操作的电子产品,固件一般指它的操作系统(“担任着一个数码产品 ...