当前位置: 首页 > news >正文

JavaScript函数使用知识点回顾

JS函数本质更像一个对象,有属性和方法。

将函数定义作为对象的属性,则称之为对象方法;函数如果用于创建新的对象,则称之为对象的构造函数。

(1)JS使用关键字  function  定义函数。

函数可以通过声明定义,也可以是一个表达式。

function functionName( parameters){
    //函数体,执行的代码
   //函数体内的可执行语句以分号间隔
}

函数的声明语句不是可执行语句,所以不需要以分号结束。

函数只有在调用的时候才会执行。

函数表达式可以存储在变量中,该变量可以作为一个函数使用。这种情况的函数被称为  匿名函数  没有函数名称。

var x = function ( a,b ){ return a + b};
var z = x ( 4,3 );

(2)JS中还可以使用自带的函数构造器  Function( )  进行定义。

var myFunction = new Function("a" , "b", "return a*b");  
//构造函数中myFunction是对象形式
var x = myFunction(4,3);

在JS中很多时候需要尽量避免使用关键字  new   ,上面的实例可以不适用构造函数,直接写成以下形式

var myFunction = function(a,b){ return a*b };
var x = myFunction(4,3);

函数提升:

提升是JS默认将当前作用域提升到前面去的行为,应用在变量的声明和函数的声明。因此函数可以在声明之前调用。(使用表达式定义函数时无法进行提升,作用域被表达式中的变量限定了

myFunction(5);
function myFunction(y){
    return y * y;
}

自调用函数:

函数表达式后跟 () ,则函数会自动调用。但是函数内的参数不能自调用声明的函数,一定要把这个和递归区分开

(function (){
    var x = "hello";     //我将调用自己
})();    //通过添加括号来说明这是一个函数表达式    (函数声明)()

有返回值的函数通常都可以当作一个值用于赋值或运算表达式中。

转载于:https://www.cnblogs.com/edward-life/p/10956965.html

相关文章:

  • Unity移动端实时阴影绘制
  • 6.2docker(二)
  • jsp直接返回验证码
  • iis7负载均衡
  • 目录服务不能与此服务器复制,因为距上一次与此服务器复制的时间已经超过了 tombstone 生存时间。...
  • linux命令 route
  • 基于 HTML5 WebGL 的 3D 场景中的灯光效果
  • httptomcat
  • MySQL常用命令(转)
  • Head Html Css 第二版笔记
  • 比较快速排序,冒泡排序,双向冒泡排序的执行效率
  • 如何在vue-cli 3.x中使用jquery
  • Sentinel基本使用--熔断降级(基于RT, ExceptionRatio, ExceptionCount)
  • VTK学习笔记--4 数据集与数据属性
  • MYSQL一次千万级连表查询优化
  • 收藏网友的 源程序下载网
  • Android系统模拟器绘制实现概述
  • CAP理论的例子讲解
  • chrome扩展demo1-小时钟
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • css属性的继承、初识值、计算值、当前值、应用值
  • Invalidate和postInvalidate的区别
  • JS变量作用域
  • JS实现简单的MVC模式开发小游戏
  • Less 日常用法
  • mac修复ab及siege安装
  • Magento 1.x 中文订单打印乱码
  • node.js
  • Sequelize 中文文档 v4 - Getting started - 入门
  • sessionStorage和localStorage
  • SpiderData 2019年2月13日 DApp数据排行榜
  • SpiderData 2019年2月25日 DApp数据排行榜
  • text-decoration与color属性
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 解析 Webpack中import、require、按需加载的执行过程
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 前端存储 - localStorage
  • 区块链技术特点之去中心化特性
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 微服务框架lagom
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 项目管理碎碎念系列之一:干系人管理
  • 小程序开发之路(一)
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • Java总结 - String - 这篇请使劲喷我
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #QT(TCP网络编程-服务端)
  • (1)bark-ml
  • (2)STL算法之元素计数
  • (3)(3.5) 遥测无线电区域条例
  • (AngularJS)Angular 控制器之间通信初探
  • (C#)一个最简单的链表类
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度