gpt4 book ai didi

javascript - var a = b = 2 和 var a = 2 之间有什么区别;变量 b=2;

转载 作者:行者123 更新时间:2023-11-30 08:36:20 25 4
gpt4 key购买 nike

当我在函数中声明变量时,我遇到了一个问题。

var b = 44;
function test(){
var a = b = 2;
}

但这工作正常:

 var b = 44;
function test(){
var a;
var b = 2;
}

变量 b 覆盖了全局 b 变量。

我找不到关于此行为的任何文档。

有没有相关的文档?

演示:http://jsfiddle.net/uq4nxk1k/1/

最佳答案

我不知道你在哪里可以找到文档,但这里是关于你获得的结果的解释:

本地 > 全局

当您声明一个全局变量时,它可以在您的文件中的任何位置使用。在“test()”中,当你写:

var a = b = 2;

您正在创建一个新变量 a,它采用全局变量 b 的值并同时将 b 的值更改为 2 -> 您正在覆盖他的值。

当你写的时候(在 test() 里面):

var a, b; 

var a; 
var b;

你又声明了两个变量,它们只在你的函数内部是已知的,并且作为局部 > 全局变量,如果你写 b = 2,你可能会面临两种情况:

  1. 如果您在 test() 中使用 console.log(b),您将获得 2
  2. 如果你在 test() 之外运行 console.log(b),你会得到 44

声明 != 赋值

非常非常重要->

  • 变量 a, b; 是声明

  • a = b = 25; 是一个赋值(我会说双重赋值)

  • var a = b = 25 同时是声明和赋值

希望对您有所帮助!!!:) 如果有什么不清楚或您需要任何其他解释,请告诉我。

关于javascript - var a = b = 2 和 var a = 2 之间有什么区别;变量 b=2;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31069698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com