Javascript中同名标识符的优先级分析

Javascript中同名标识符的优先级分析
首先,首先声明局部变量,并且不影响外部同名变量。
复制代码代码如下所示:
变量x=1;外部变量
函数FN(){
警报(x);使用本地变量
变量x = 2;在声明和赋值之后
}
(FN);
警报(x); > 1

第一点是函数的第一个句子是x,x在第二个句子中定义,这在js中是允许的,这里的允许是不能运行任何语法错误程序

但它不是在其他语言如C,java允许。一个变量必须首先声明和使用,如
复制代码代码如下所示:
公共类测试{
public static void main(String { } args){
System.out.println(x); / /第一次使用
int = 10;在语句之后
}
}

在java编译器会提示错误,程序无法运行。

第二,函数FN中的局部变量x不影响外部变量x,即FN中的警报输出不是1,而是未定义的。

二、表单的优先级高于函数名
复制代码代码如下所示:
函数FN(FN){
警戒(FN);
}
FN(你好); / / - >你好

您可以看到函数的名称和参数的名称都是FN,输出是字符串hello

三,参数的优先级高于参数。
复制代码代码如下所示:
函数FN(参数){
警报(参数);
}
FN(你好); / / - >你好

参数对象可以直接在函数中使用,并且是由语言本身提供的特殊标识符。

这里是同名的参数语句。输出可以被视为hello而不是{对象对象}。

四,参数的优先级高于仅声明但未赋值的局部变量。
复制代码代码如下所示:
函数FN(a){
VaR;
警报(a);
}
FN(你好); / / - >你好

函数FN参数是A,函数中的第一个句子只声明局部变量A,但不赋值它。从输出结果是hello而不是未定义的,可以看出表单的优先级高于本地变量,a只声明,但不赋值。

五,声明和分配的本地变量的优先级高于表单参数。
复制代码代码如下所示:
函数FN(a){
var a=1;
警报(a);
}
FN(你好); / / 1 -- >

函数FN参数是A,函数中的第一个句子只声明局部变量a,赋值是1。从输出结果是1而不是hello。

六,当参数被分配给同名的本地变量时
复制代码代码如下所示:
函数FN(a){
var;
警报(a);
}
FN(你好);

暂时不要运行,猜测结果。在第五点声明和赋值的局部变量的优先级要高于表单参数。然后A将是未定义的。
这里的21不互相干扰,没有人覆盖任何人,这与本地变量的优先级刚好高于表单的参数相矛盾,但是引擎做了我们想做的事情,因为它不希望var a = a未定义。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部