1.1.1函数的分类

  • 函数声明式 :使用function声明函数,并指定函数名。
  • 函数表达式:使用function声明函数,但未指定函数名。
  • 函数表达式2.匿名函数,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。
  • 立即执行函数,两种写法。立即执行函数里面的函数必须是函数表达式
    (function(){})()        (function(){}())
    (function(){}())这样写的好处是在内部定义的变量不会跟外部的变量有冲突,达到保护内部变量的作用。
  • 回调函数 此函数比较特殊,一般属于异步。例如 setTimeout(function, xx)

1.2函数声明与函数表达式的区别

  1. 调用位置
    函数声明可以在当前作用域下提前调用,因为 函数提升即将函数声明提升到它所在作用域的最开始的部分(js预解析函数提升)

    函数表达式只能在声明之后调用

  2. 调用方法区别
    函数声明必须有函数名。【通过函数名调用】

    函数表达式中的函数名可选的(所以称为匿名函数)(更像js语句的一部分)
    比如赋值表达式等号右边,作为函数参数,立即执行函数。这三种情况都可以不使用函数名。【1.作为其他函数的参数,通过参数名访问。2.函数赋值给一个变量,通过变量名访问。】

  3. 使用范围
    函数声明只能作用于全局中,或者镶嵌在其他函数中。不能出现在循环,条件中(待确认)(部分探讨见1.4)
  4. 函数表达式可以直接在函数后接()调用

1.1 js中函数定义解析(学习笔记)的更多相关文章

  1. JS中函数定义和使用顺序

    在js中如果定义函数是先声明函数,如: console.log(hello); //然后再去定义: function hello(){ alert("Hello");} 这种是可以 ...

  2. JS中函数定义和函数表达式的区别

    摘要: (function() {})();和(function(){}());的区别 Javascript中有2个语法都与function关键字有关,分别是: 函数定义:function Funct ...

  3. js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数)

    js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数) 一.总结 1.JSON解析:JSON.parse(myJS ...

  4. JS中函数参数和函数返回值的理解

    函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能 ...

  5. 转:JS中生成和解析JSON

    原文地址:JS中生成和解析JSON 1.JS中生成JSON对象的方法: var json = []; var row1 = {}; row1.id= "1"; row1.name ...

  6. js中函数传参的情况

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  7. 对JS中函数的理解

    函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能 ...

  8. js中函数的参数为函数的情况即回调函数

    js中函数的参数可以是数组对象也可以是函数,当参数为函数时我们叫做回调函数 //定义回调函数function B() { console.log("函数B")setTimeout( ...

  9. 关于js中函数的调用问题

    js中函数的调用方法 1.直接调用 函数名(参数): 2.通过指向函数的变量去调用 例如: var myval = 函数名: 此刻 myval是指向函数的一个指针: myval(实际参数):此刻调用的 ...

随机推荐

  1. Ubuntu系统配置Zabbix前端及中文乱码解决方案

    Ubuntu系统配置Zabbix前端及中文乱码解决方案  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装zabbix 博主推荐阅读: https://www.cnblogs ...

  2. CLion的使用

    配置远程Linux编译器 实现目标:1.将项目中的源码和target和Linux服务器同步.2.代码在服务器端运行 配置ToolChains setting -> Build,Execution ...

  3. Day6 - M - 动态逆序对 HYSBZ - 3295

    对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数.给1到n的一个排列,按照某种顺序依次删 除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数 I ...

  4. java csv文件写入

    List<String> list_code = null; 方案1 控制字符集: BufferedWriter bw=new BufferedWriter(new OutputStrea ...

  5. 使用Indy解决Could not load SSL Library错误

    测试平台:DelphiXE7 + Indy 10.6.0.5169 + Win7 64bit 步骤: 1. SSL下载版本:openssl-1.0.1j-i386-win32 可去http://yun ...

  6. Spring boot application.properties和 application.yml 初学者的学习

    来自于java尚硅谷教程 简单的说这两个配置文件更改配置都可以更改默认设置的值比如服务器端口号之类的,只需再文件中设置即可, properties可能是出现的比较早了,如果你不调你的默认编码,中文可能 ...

  7. sql 报错问题

    SQLServer数据库密码已过期问题 处理

  8. Docker 搭建开源 CMDB平台 “OpsManage” 之 Mariadb

    整理了一下文档  今天来构建mariadb 主机还是 centos  172.16.0.200 构建第二个images   直接shell.sh 完成  #!/bin/bash echo " ...

  9. TBLASTN

    TBLASTN search translated nucleotide databases using a protein query

  10. P1006 换个格式输出整数

    这道题相较于上一题来说就简单了许多.看题. 怎么感觉这道题有点类似P1002写出这个数.流程差不多,思路大致是先求出每一位上的数,然后根据 百十个 的顺序输出结果.题目比较简单,不做赘述,贴代码 代码 ...