zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    ioctl()函数详解
    傻孩子菜单框架
    高级套接口-(sendmsg和recvmsg)
    Linux内核Socket CAN中文文档
    第二节 信息系统服务管理
    第一节 信息化知识
    关系数据库标准语言SQL——概述
    SQL分组函数
    如何将web项目部署到weblogic
    范式
  • 原文地址:https://www.cnblogs.com/cxzhome/p/8475499.html
Copyright © 2011-2022 走看看