题解 | #避免全局变量#

避免全局变量

https://www.nowcoder.com/practice/e362110c727347048f350bd90af31c62

function globals() {
    let myObject = {
      name : 'Jory'
    };

    return myObject;
}
function globals() {
    var myObject = {
      name : 'Jory'
    };

    return myObject;
}

在 JavaScript 中,定义变量时写 "let" 和不写 "let" 的区别在于作用域的范围。

当你在定义变量时使用 "let" 关键字时,这个变量的作用域将被限制在当前的代码块中。例如:

function example() {
  let x = 10;
  console.log(x); // 输出 10
}
console.log(x); // 抛出 ReferenceError 错误,因为 x 只在函数 example() 的作用域中定义

在上面的例子中,变量 "x" 只在函数 "example" 中定义,并且在函数外部的代码中无法访问。

如果你在定义变量时不使用 "let" 关键字,JavaScript 将会将其视为一个全局变量,并且可以在代码中的任何位置使用。例如:

function example() {
  x = 10;
  console.log(x); // 输出 10
}
example();
console.log(x); // 输出 10

在上面的例子中,变量 "x" 在函数中定义但没有使用 "let" 关键字。因此,JavaScript 将其视为一个全局变量,并且可以在函数外部的代码中使用。

需要注意的是,全局变量的使用容易导致代码中的错误和混淆,并且应该尽可能地避免。建议在定义变量时始终使用 "let" 或 "const" 关键字,以确保变量的作用域得到正确的限制。

在 JavaScript 中,定义变量时使用 var 关键字和不使用 var 关键字有很大的区别。

当使用 var 关键字定义变量时,变量被限定在当前函数的作用域内。这意味着,如果在一个函数内使用 var 关键字定义一个变量,那么该变量只能在该函数内部使用。此外,如果在一个函数内部定义了一个变量,它也不会影响到外部的同名变量。

例如,下面的代码中有两个函数 foobar,它们都定义了同名的变量 x,但是由于它们都使用了 var 关键字,所以它们的作用域是相互独立的:

function foo() {
  var x = 1;
  console.log(x); // 输出 1
}

function bar() {
  var x = 2;
  console.log(x); // 输出 2
}

foo();
bar();

然而,如果不使用 var 关键字来定义变量,JavaScript 将会把该变量当作全局变量来处理。这意味着该变量将会被添加到全局对象(在浏览器中是 window 对象)的属性列表中,并且可以在任何地方被访问到。

例如,下面的代码中定义了一个没有使用 var 关键字的变量 x

function foo() {
  x = 1;
  console.log(x); // 输出 1
}

function bar() {
  console.log(x); // 输出 1
}

foo();
bar();

在上面的代码中,当调用 foo 函数时,JavaScript 会将变量 x 添加到全局对象中。然后,当调用 bar 函数时,它可以访问到该全局变量 x 并输出其值。

因此,为了避免产生不必要的问题和错误,建议在定义变量时始终使用 var 关键字来限定变量的作用域。

全部评论

相关推荐

北枳的南橘:建议大家务必去和他沟通一下,像极了小学生对你侃侃而谈国际局势😂
找AI工作可以去哪些公司...
点赞 评论 收藏
分享
个人背景:学院二本计科专业 大二开始实习个人经历:安克创新 、理想汽车、字节跳动碎碎念:我做事只有三分钟热度。看到进了大厂的同学,我会羡慕,也会跟着努力上进;但遇到好看的小说,我又会放下手头的事沉迷其中,之前的坚持也就中断了。我有些自卑,总觉得自己学历和外貌都不够好。之前偶然在网上受到关注,我就喜欢上了上网,因为这里有很多人认可我。但我也很在意别人的评价,偶尔看到嘲讽的言论,会触发我的自卑情绪,让我感到愤怒。有时候我会强硬地回怼,有时候又会懦弱地选择无视。我也有虚荣心。不管是拿到安克、理想还是字节的机会,我在分享的时候都会带着这份心思。我会特意强调自己学历不好,是为了衬托出过程的艰难,以此显得自己更厉害。我知道,人往往会炫耀自己缺少的东西,来掩盖内心的空洞。我总想着走捷径,不太喜欢踏踏实实地做事。找实习的时候,我花了更多时间在研究面试技巧上,而不是提升专业能力。我会反复听面试录音分析技巧,看面试教程学习怎么和不同的面试官沟通,还会每天自言自语练习语言表达,同学都觉得我有点奇怪。我的实习生涯里,侥幸和运气占了很大一部分。我总在想,如果有一天我失去了这份幸运,这些特质可能会让我一蹶不振。ps: 很多人会问我学习路线和经验 但是就像我上面说的 我的实习过程靠的很多是关键节点的运气 技术上面我可能不如很多人  所以请大家理性求助和理性参考我的回答 附上我的投递记录
我的offer在哪里...:从去年看到现在,飞升哥就是榜样
我的求职进度条
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务