数码资讯
介绍Javascript函数声明和函数表达式之间的区别
是一样的。首先,代码: 复制代码代码如下所示: 函数g(){ 返回1; }; 如果(false){ f函数g(){ 返回2; }; } 警报((g));2 把这个代码到IE 6,铬是一种完全不同的两种效应。 输出2这里是IE6的效果,如果G出现在Chorme,它没有定义。 这也是Jscript的bu
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
是一样的。首先,代码:
复制代码代码如下所示:
函数g(){
返回1;
};
如果(false){
f函数g(){
返回2;
};
}
警报((g));2
把这个代码到IE 6,铬是一种完全不同的两种效应。
输出2这里是IE6的效果,如果G出现在Chorme,它没有定义。
这也是Jscript的bug。
很明显,它只是一个函数表达式,定义G在条件语句中,函数表达式被定义,函数没有声明。
所以直接访问肯定会出错。
那么,什么是声明,什么是函数表达式
在ECMAscript,最常用的两种方法来创建一个函数是一个函数的表达式和函数的声明,这两个时期之间的差异是有点晕,因为ECMA规范只明确了一点:函数的声明必须有标识符(标识符)(即我们常说的函数名称),你可以省略函数表达式中的标识符:
函数声明:
函数函数名(参数:可选){函数体}
函数表达式:
函数函数名(可选)(参数:可选){函数体}
所以我们可以看到,如果我们不声明函数名,它必须是一个表达式。如果我们声明函数的名称,我们怎么说它是函数声明或函数表达式ECMAscript是语境的区别,如果函数(Foo){ }是一个赋值作为它的一部分,它是一个函数表达式,如果函数(Foo){ }是包含在身体的一个函数,或是在上面,它是一个函数声明。
还有一个函数表达式是不太常见的,是括号括起来(函数),他之所以表示的原因是因为括号()是一个分组运算符,它只能包含内部表达式。
你可能会认为,在评价实施JSON的使用时间,JSON字符串通常包含在一个括号:eval('(' + JSON + ')'),这是因为这是分组操作符、括号,括号将解析JSON代替一块执行的代码表达式使分析器。
复制代码代码如下所示:
函数g(){
返回1;
};
如果(false){
f函数g(){
返回2;
};
}
警报((g));2
把这个代码到IE 6,铬是一种完全不同的两种效应。
输出2这里是IE6的效果,如果G出现在Chorme,它没有定义。
这也是Jscript的bug。
很明显,它只是一个函数表达式,定义G在条件语句中,函数表达式被定义,函数没有声明。
所以直接访问肯定会出错。
那么,什么是声明,什么是函数表达式
在ECMAscript,最常用的两种方法来创建一个函数是一个函数的表达式和函数的声明,这两个时期之间的差异是有点晕,因为ECMA规范只明确了一点:函数的声明必须有标识符(标识符)(即我们常说的函数名称),你可以省略函数表达式中的标识符:
函数声明:
函数函数名(参数:可选){函数体}
函数表达式:
函数函数名(可选)(参数:可选){函数体}
所以我们可以看到,如果我们不声明函数名,它必须是一个表达式。如果我们声明函数的名称,我们怎么说它是函数声明或函数表达式ECMAscript是语境的区别,如果函数(Foo){ }是一个赋值作为它的一部分,它是一个函数表达式,如果函数(Foo){ }是包含在身体的一个函数,或是在上面,它是一个函数声明。
还有一个函数表达式是不太常见的,是括号括起来(函数),他之所以表示的原因是因为括号()是一个分组运算符,它只能包含内部表达式。
你可能会认为,在评价实施JSON的使用时间,JSON字符串通常包含在一个括号:eval('(' + JSON + ')'),这是因为这是分组操作符、括号,括号将解析JSON代替一块执行的代码表达式使分析器。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。