半月板损伤,函数声明与函数表达式,河正宇

频道:新闻世界 日期: 浏览:120

函数是Java非常重要的一部分,它被称为榜首等公民,能够看出它的位置是多么显贵多么重要。依据我一向的风格,会深化原理性的东西,那这篇文章主要来发掘函数声明与函数表达式相关常识。

在Java中界说一个函数有四种办法

函数声明

函数表达式

ES6里箭头函数

new Function()

函数声明

语法

function 函数名(参数){

要履行的代码

}

调用

函数名(参数)

函数名.call(函数名,参数)

函数名.apply(函数名,[参数])

new 函数蓝色的海豚岛主要内容名(参数)

半月板损害,函数声明与函数表达式,河正宇

定时器

把函数声明变成函数表达式再调用

ES6里的模版字符串

function fn(text){

console.log(text);

}

fn('直接调用')半月板损害,函数声明与函数表达式,河正宇;

fn.call(fn,'用call调用');

fn.apply(fn,['用apply调用']);

new fn('用new调用');

setTimeou半月板损害,函数声明与函数表达式,河正宇t(fn('用定时器调用'));

(function fn(text){

console.log(text);

})('转成函数表达式后调用');

fn`用模版字符串调用`; //ES6里语法

函数表达式

语法

var/let/const 变量=function(参数){

要履行的代码

}

调用

函数名(参数)

函数名.call(函数名,参数)

函数名.apply(函数名,[参数])

new 函数名(参数)

直接在后边加上一对小括号

定时器

ES6里的模版字符串

以被赋值的方法呈现(依据详细方法调用)

const f宰杀肉畜n=function(text){

console.log(text);

};

fn('直接调用');

fn.call(fn,'用call调用');

fn.apply(fn,['用apply调用一千零一夜林桑榆']);

new fn('用new调用');

const fn2=function(text){

console.log(text);

}('直接在后边加小括号调用');

setTimeout(fn('用定时器调用'));

fn成都爱丽美妇产医院`用模版字符串调用`;

document.onclick=function(){

console.log('以被赋值的方法呈现也是一个函数表达式');

};

函数声明与函数表达式的差异

函数声明有必要带有标识符(函数称号),函数表达式则能够省掉

表达式里的姓名不能在函数外面用,只能在函数内部用

函数有一个name特点,指向紧跟在function关键字之后的那个函数名。假如函数表达式没有姓名,那name特点指向变量名

函数声明会被预解析,函数表达式不会

//1、姓名

//函数声明必需带姓名

function fn(){};

//function(){}; //报错,没有姓名

//函数表达式能够没有姓名

let fn1=function(){};gayforlt

(fu一查三督nction(){});

!function(){};

//表达式姓名的效果

let fn2=function newFn(){

console.log(newFn); //能够在这里边用。有一个效果便是在这里用递归

};

fn2();

//newFn(); //报放学后福不福2错,不能在外面用

//name特点

console.log(

fn.name, //fn

fn1.name, //fn1 表达式没有姓名,name特点指禁断边际向表达式变量名

fn2.name //newFn

);

//2、预解析

象人族

fn3();

function fn3(){

console.丧野求生攻略log('fn3');

}

//f催眠杂记n4(); //报错,不会被预解析

let fn4=function(){

console.log('fn4');

}

自履行函数

自履行函数也叫当即调用的函数表达式(IIFE)。它的效果为咱们不必主动地去调用函数,它会自己调用,关于做模块化、处理组件对错常有用的。

首要来看一个问题,调用函数最简略的办法便是加一对小括号,那半月板损害,函数声明与函数表达式,河正宇我在函数声明的结尾加一对括号后,这个函数能否调用呢?

function fn(){

console.log(1);

}(); //报错

const fn1半月板损害,函数声明与函数表达式,河正宇=function(){

console.log('表达式履行');

}(); //履行函数

函数声明不能直接调用的原因

小括号里只能放表达式,不能放句子

function关键字即能够当作句子,也能够当作表达式。但js规则function关键字呈现内行首,一概解说成句子

解决办法:不要让function呈现内行首

用括号把function主体括起来,转成表达式。后边加括号运转

凭借运算符(new + - ! ~ typeof , ||...)

由于运算符会把表达式履行,履行孙歆艾后得出成果了才干运算

//小括号里只能放表达式

(

if(true){

c极品判官onsole.l半月板损害,函数声明与函数表达式,河正宇og(1);

}

)//报错,括号里不能唐安琪烧伤凶手琰玥放句子

(1);

(1+2);

([1]);

({});

function fn(){

console.log('函数声明履行');

}(1); //契合语法,可是函数不会履行

//特莱雅想要履行就必需把函数声明转成表达式,而小括号里只能放表达式,使用这个特征把函数放在一对括号里,再加一对括号就能履行

(function fn(){

console.log('函数声明履行');

})();

//或许这样也能够履行

(function fn(){

console.log('函数声明履行');

}());

只要把函数声明转成表达式,再加上括号就能够声明。那就有许多八怪七喇的办法来履行函数

0+function(text){贾烽是谁

console.log(text);

}('与数半月板损害,函数声明与函数表达式,河正宇字相加变成表达式');

truefunction(text){

console.log(text);

}('使用逻辑运算符变成表达式');

false||fun小雪提莫ction(text){

console.log(text);

}('使用逻辑运算符变成表噩梦瑰宝达式');

0,function(text){

console.log(text);

}('使用逗号运算符变成表达式');

//二进制位取反运算符

~function(text){

console.log(text);

}('前面加上+-!~变成表达式');

new function(text){

console.log(text);

}('使用new运算符变成表达式');

typeof function(text){

console.log(text);

}('使用tydespasitopeof运算符变成表达式');

语法
声明:该文观念仅代表作者自己,搜狐号系信息发布渠道,搜狐仅供给信息存储空间效劳。
热门
最新
推荐
标签