javascript中var同时声明多个变量时的原理是什么?

Posted 进击前端的海绵宝宝丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中var同时声明多个变量时的原理是什么?相关的知识,希望对你有一定的参考价值。

<script>
    function show(){
        var a=b=c=d=5;
    }
    show();
    alert(a);//弹a时报错(not defined),而b、c、d都能弹出5
</script>


因为赋值是从右向左结合:
var a=b=c=d=5; 等价于 var a=(b=(c=(d=5)));,其中只有a被声明了,b,c和d都是自动解析为全局变量了。



<script>
    function show(){
        var a=5,b=6,c=7;
    }
    show();
    alert(c);//弹出a、b、c全都报错
</script>
语法就这样规定的:

概述
变量声明语句,声明一个变量并且可以同时初始化该变量。

语法
var varname1 [= value1 [, varname2 [, varname3 ... [, varnameN]]]];
varnameN 变量名。变量名可以定义为任何合法标识符。 valueN 变量的初始化值。该值可以为任何合法表达式。

描述
变量声明无论出现在代码的任何位置,都会在任何代码执行之前处理。使用var语句声明的变量的作用域是当前执行>位置的上下文:一个函数的内部(声明在函数内)或者全局(声明在函数外)。
....

参考:

    1. Assignment operators

    2. 运算符优先级

    3. var - javascript

以上是关于javascript中var同时声明多个变量时的原理是什么?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中常用变量介绍

语法基础Javas cript变量的声明和使用

javascript中var let const三种变量声明方式

JavaScript变量语法扩展

JavaScript变量语法扩展

Javascript基础