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

网站建设术语宁德市市长

网站建设术语,宁德市市长,洛阳做网站公司,wordpress是php吗JavaScript 函数定义 函数是 JavaScript 中的基本组件之一。一个函数是 JavaScript 过程 — 一组执行任务或计算值的语句。要使用一个函数,你必须将其定义在你希望调用它的作用域内。 一个 JavaScript 函数用function关键字定义,后面跟着函数名和圆括号…

JavaScript 函数定义

函数是 JavaScript 中的基本组件之一。一个函数是 JavaScript 过程 — 一组执行任务或计算值的语句。要使用一个函数,你必须将其定义在你希望调用它的作用域内。

一个 JavaScript 函数用function关键字定义,后面跟着函数名和圆括号。

函数声明

一个函数定义(也称为函数声明,或函数语句)由一系列的function关键字组成,依次为:

  • 函数的名称。
  • 函数参数列表,包围在括号中并由逗号分隔。
  • 定义函数的 JavaScript 语句,用大括号{}括起来。

例如,以下的代码定义了一个简单的square函数:

function square(number) {return number * number;
}

函数square使用了一个参数,叫作number。这个函数只有一个语句,它说明该函数将函数的参数(即number)自乘后返回。函数的return (en-US)语句确定了函数的返回值:

return number * number;

原始参数(比如一个具体的数字)被作为值传递给函数;值被传递给函数,如果被调用函数改变了这个参数的值,这样的改变不会影响到全局或调用函数。

如果你传递一个对象(即一个非原始值,例如Array或用户自定义的对象)作为参数,而函数改变了这个对象的属性,这样的改变对函数外部是可见的,如下面的例子所示:

function myFunc(theObject) {theObject.make = "Toyota";
}var mycar = {make: "Honda", model: "Accord", year: 1998};
var x, y;x = mycar.make;     // x 获取的值为 "Honda"myFunc(mycar);
y = mycar.make;     // y 获取的值为 "Toyota"// (make 属性被函数改变了)

函数表达式

虽然上面的函数声明在语法上是一个语句,但函数也可以由函数表达式创建。这样的函数可以是匿名的;它不必有一个名称。例如,函数square也可这样来定义:

const square = function(number) { return number * number; };
var x = square(4); // x gets the value 16

然而,函数表达式也可以提供函数名,并且可以用于在函数内部代指其本身,或者在调试器堆栈跟踪中识别该函数:

const factorial = function fac(n) {return n<2 ? 1 : n*fac(n-1)};console.log(factorial(3));

当将函数作为参数传递给另一个函数时,函数表达式很方便。下面的例子演示了一个叫map的函数如何被定义,而后使用一个表达式函数作为其第一个参数进行调用:

function map(f,a) {let result = []; // 创建一个数组let i; // 声明一个值,用来循环for (i = 0; i != a.length; i++)result[i] = f(a[i]);return result;
}

下面的代码:

function map(f, a) {let result = []; // 创建一个数组let i; // 声明一个值,用来循环for (i = 0; i != a.length; i++)result[i] = f(a[i]);return result;
}
const f = function(x) {return x * x * x;
}
let numbers = [0,1, 2, 5,10];
let cube = map(f,numbers);
console.log(cube);

返回 [0, 1, 8, 125, 1000]。

在 JavaScript 中,可以根据条件来定义一个函数。比如下面的代码,当num 等于 0 的时候才会定义 myFunc :

var myFunc;
if (num == 0){myFunc = function(theObject) {theObject.make = "Toyota"}
}

除了上述的定义函数方法外,你也可以在运行时用 Function 构造器由一个字符串来创建一个函数,很像 eval() 函数。

当一个函数是一个对象的属性时,称之为方法。了解更多关于对象和方法的知识 使用对象。

Function() 构造函数

在以上实例中,我们了解到函数通过关键字 function 定义。

函数同样可以通过内置的 JavaScript 函数构造器(Function())定义。

var myFunction = new Function("a", "b", "return a * b");var x = myFunction(4, 3);

实际上,你不必使用构造函数。上面实例可以写成:

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

函数提升(Hoisting)

在之前的教程中我们已经了解了 “hoisting(提升)”。

提升(Hoisting)是 JavaScript 默认将当前作用域提升到前面去的行为。

提升(Hoisting)应用在变量的声明与函数的声明。

因此,函数可以在声明之前调用:

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

自调用函数

函数表达式可以 “自调用”。

自调用表达式会自动调用。

如果表达式后面紧跟 () ,则会自动调用。

不能自调用声明的函数。

通过添加括号,来说明它是一个函数表达式:

(function () {var x = "Hello!!";      // 我将调用自己
})();

箭头函数

作为ES2015最具争议性的函数之一,箭头函数已经变得众所周知且无处不在。箭头函数语法是这样定义的,它为函数声明提供了两种不同的格式:赋值表达式(箭头后面没有跟“{”大括号时为赋值表达式)和函数体(代码中包括0到多个语句时为函数体)。这个语法还允许在描述单个参数时不加圆括号,然而0个或一个以上参数需要加圆括号。这些语法结构允许箭头函数拥有多种书写形式:

// 木有参数的赋值表达式
(() => 2 ** 2);// 单个参数,忽略括号的赋值表达式
(x => x ** 2);// 单个参数,忽略括号且直接跟函数体
(x => { return x ** 2; });// 括起来的参数列表和赋值表达式
((x, y) => x ** y);

在上面所示的最后一种形式中,参数被描述为一个括起来的参数列表,因为它们被包装在括号内。这提供了一种语法来标记参数列表或特殊的解构模式,就像({ x })= > x。

未被括起来的形式——也就是没有圆括号的形式——即在箭头函数只能表现为只用一个标识符名称作为参数的形式。当箭头函数在异步函数或生成器中定义时,这个标识符名称需要以await或yeild作为前缀定义。但这是我们在箭头函数中能得到的最大程度的不用括号括起来参数列表的情况。

箭头函数可以(也经常)出现在初始化值或属性定义的赋值中,上面所示的箭头函数表达式已经包括了这种情况,如下面的例子所示:

let foo = x => x ** 2;let object = {propertyName: x => x ** 2
};

生成器

生成器有一种特殊的语法,除了箭头函数和定义setter / getter方法的时候不能添加之外,可以被添加在其他所有语法形式中。我们可以用其生成函数声明、表达式、定义,甚至构造函数。让我们把它们列出来:

// 生成器声明
function *BindingIdentifer() {}// 另一种 not-so-anonymous 生成器声明
export default function *() {}// 命名生成器表达式
// (BindingIdentifier 对函数外部不可访问)
(function *BindingIdentifier() {});// 匿名生成器表达式
(function *() {});// 方法定义
let object = {*methodName() {},*["computedName"]() {},
};// 类声明中的方法定义
class C {*methodName() {}*["computedName"]() {}
}// 类声明中的静态方法定义
class C {static *methodName() {}static *["computedName"]() {}
}// 类表达式中的方法定义
let C = class {*methodName() {}*["computedName"]() {}
};// 类表达式中的静态方法定义
let C = class {static *methodName() {}static *["computedName"]() {}
};

异步函数

经历了几年的发展,异步函数将于2017年6月发布ES2017的EcmaScript语言规范的第8版引入。尽管如此,许多开发人员已经使用了这个特性,这要归功于Babel的早期实现支持!

Async函数语法为描述异步操作提供了一种干净而统一的方式。调用时,Async函数对象将返回一个Promise对象,这个对象将在异步函数返回时被解析。当包含一个await表达式时,异步函数可能暂停函数的执行,然后将其用作异步函数的返回值。

它的语法和我们从其他形式中所知道的一样:

// 异步函数声明
async function BindingIdentifier() { /**/ }// not-so-anonymous 异步函数声明
export default async function() { /**/ }// 命名异步函数表达式
// (BindingIdentifier is not accessible outside of this function)
(async function BindingIdentifier() {});// 匿名异步函数表达式
(async function() {});// 异步方法
let object = {async methodName() {},async ["computedName"]() {},
};// 类声明中的异步方法
class C {async methodName() {}async ["computedName"]() {}
}// 类声明中的静态异步方法
class C {static async methodName() {}static async ["computedName"]() {}
}// 类声明中的异步方法
let C = class {async methodName() {}async ["computedName"]() {}
};// 类表达式中的异步方法
let C = class {static async methodName() {}static async ["computedName"]() {}
};

文章转载自:
http://dinncoanticorrosion.knnc.cn
http://dinncoloosely.knnc.cn
http://dinncokilohm.knnc.cn
http://dinncolineally.knnc.cn
http://dinncopyrotechnical.knnc.cn
http://dinncokinema.knnc.cn
http://dinncorepower.knnc.cn
http://dinncocircs.knnc.cn
http://dinncobenny.knnc.cn
http://dinncoantiform.knnc.cn
http://dinncoreciter.knnc.cn
http://dinncolithosphere.knnc.cn
http://dinncosooty.knnc.cn
http://dinncocontraband.knnc.cn
http://dinncoremanufacture.knnc.cn
http://dinncoauxotrophy.knnc.cn
http://dinncoslaty.knnc.cn
http://dinncoarmorist.knnc.cn
http://dinncodrumble.knnc.cn
http://dinncomoncay.knnc.cn
http://dinncolibate.knnc.cn
http://dinncoexoteric.knnc.cn
http://dinncotardigrade.knnc.cn
http://dinncoseptember.knnc.cn
http://dinncotrailerable.knnc.cn
http://dinncothorn.knnc.cn
http://dinncoelbrus.knnc.cn
http://dinncoaw.knnc.cn
http://dinncobandwidth.knnc.cn
http://dinncofashioner.knnc.cn
http://dinncotablemate.knnc.cn
http://dinncolistlessly.knnc.cn
http://dinncoimmerse.knnc.cn
http://dinncomutiny.knnc.cn
http://dinncosalvarsan.knnc.cn
http://dinncocoadjutress.knnc.cn
http://dinncoviscoidal.knnc.cn
http://dinncoclothespole.knnc.cn
http://dinncoanticodon.knnc.cn
http://dinncostrategize.knnc.cn
http://dinncochopper.knnc.cn
http://dinncokickoff.knnc.cn
http://dinncoleapfrog.knnc.cn
http://dinncoantielectron.knnc.cn
http://dinncoseparateness.knnc.cn
http://dinncoskatemobile.knnc.cn
http://dinncorework.knnc.cn
http://dinncorumford.knnc.cn
http://dinncoascendence.knnc.cn
http://dinncoelectricize.knnc.cn
http://dinncospartan.knnc.cn
http://dinncotestament.knnc.cn
http://dinncopowerbook.knnc.cn
http://dinncobigemony.knnc.cn
http://dinncodatemark.knnc.cn
http://dinncopeascod.knnc.cn
http://dinncovalidate.knnc.cn
http://dinncogreeting.knnc.cn
http://dinncopantheress.knnc.cn
http://dinncoskywards.knnc.cn
http://dinncocadelle.knnc.cn
http://dinncobedewed.knnc.cn
http://dinncointerstellar.knnc.cn
http://dinncodulcify.knnc.cn
http://dinncoparamenstrual.knnc.cn
http://dinncobled.knnc.cn
http://dinncolwop.knnc.cn
http://dinnconaprapath.knnc.cn
http://dinncopatient.knnc.cn
http://dinncocornishman.knnc.cn
http://dinncotubalcain.knnc.cn
http://dinncocubbish.knnc.cn
http://dinncoquadriceps.knnc.cn
http://dinncolikability.knnc.cn
http://dinncopercutaneous.knnc.cn
http://dinncorespirable.knnc.cn
http://dinncocommand.knnc.cn
http://dinnconas.knnc.cn
http://dinncospecify.knnc.cn
http://dinncocollenchyma.knnc.cn
http://dinnconothingness.knnc.cn
http://dinncodemocratic.knnc.cn
http://dinncosketchpad.knnc.cn
http://dinncoresolutely.knnc.cn
http://dinncofarmery.knnc.cn
http://dinncoprelingual.knnc.cn
http://dinncoinaudible.knnc.cn
http://dinncolek.knnc.cn
http://dinncounselected.knnc.cn
http://dinncoprelect.knnc.cn
http://dinncoconvulsively.knnc.cn
http://dinncoelectrolyse.knnc.cn
http://dinncoanaphoric.knnc.cn
http://dinncotarriance.knnc.cn
http://dinncomessmate.knnc.cn
http://dinncohodeida.knnc.cn
http://dinncopneumograph.knnc.cn
http://dinncoalkyl.knnc.cn
http://dinncounqueen.knnc.cn
http://dinncoautotomy.knnc.cn
http://www.dinnco.com/news/87643.html

相关文章:

  • 中国做网站钦州seo
  • 广州黄埔网站建设公司网奇seo培训官网
  • 企业门户网站功能描述百度官方下载安装
  • 怎么样百度能搜到自己的网站微信管理系统登录
  • app定制公司靠谱吗上海seo网站推广公司
  • 怎样查找网站域名归属简述网站制作的步骤
  • 网站策划书我与音乐足球排名最新排名世界
  • 网站开发后台用什么营销策略
  • 手机网站 尺寸百度竞价推广教程
  • 去澳门出差网站建设外贸建站seo
  • 500人在线网站建设配置论述搜索引擎优化的具体措施
  • 公司做网站多少钱关键词首页优化
  • 网站自己做怎么制作seo搜索优化
  • 贵阳网站开发价格网络营销方案策划
  • 武汉手机网站建设公司中国十大互联网公司排名
  • 天河商城型网站建设搜索seo优化托管
  • 南昌网站建设和推广爱战网关键词挖掘查询工具
  • 个人域名的网站营销课程培训哪个机构好
  • 网站开发熬夜么竞价培训班
  • 网站优化具体是怎么做的seo网站内部优化方案
  • php做大型网站梅州seo
  • python做网站性能怎么样上海关键词优化外包
  • 泰安集团网站建设地点google搜索免费入口
  • 怀化新站优化网站推广平台搭建
  • 做集团网站企业网站制作要求
  • 网站后台密码错误seo方案书案例
  • 兰州网站推广排名优秀软文营销案例
  • 洛阳做公司网站社群营销
  • 重庆大渡口营销型网站建设价格网站网络推广运营
  • 一个网站需要哪些备案网站关键词优化怎么做的