首页 > 解决方案 > 为什么(全局/函数/块)范围,javascript?

问题描述

所以最近我决定将我的职业道路从 PHP 开发人员转变为 MERN 堆栈开发人员,并转而使用 node.js 进行后端开发。重新开始 javascript 基础知识并遇到真正开始融化我的想法的范围:

为什么 -

在 php 中:

<?php

$var = "string";

if(true) {
    $var = "string2";
}

echo $var;

返回字符串 2

在 c++ 中:

// Example program
#include <iostream>
#include <string>

int main()
{
  std::string var = "string";
  if(true) {
      std::string var = "string2";
  }
  std::cout << var ;
}

返回字符串 2

但在 javascript 中:

let string = "string";
if(true) {
    let string = "string2";
}
console.log(string);

返回字符串

javascript 使用变量范围编程和其他大型编程语言(如 c++、php)具有正常的机器类型变量范围的解释是什么?我的第一个猜测是 javascript 主要是前端语言和/或 javascript 异步工作。

标签: javascriptvariablesasynchronousscopeglobal-variables

解决方案


推荐阅读