JavaScript 基础 - 变量:La Base de Cualquier Programa

57 阅读10分钟

介绍 程序的基本概念是程序中的变量。不允许在我们的程序中使用任何设备和操作数据。如此循环往复,各种变量都被抽象为各种变量,其名称与勇气相关。

声明变量:const、let 和 var 在 JavaScript 中创建变量,并声明该变量,然后将其终止。 JavaScript 中声明变量的比例是:var, lety const。

使用var 声明变量 变量声明 声明变量var可以与全局函数或全局变量一起使用,可选的初始值。

主要特征var:

在 1995 年创建 JavaScript 聚合。 Tiene alcance o ambito de función (no de bloque)。 请重新声明错误。 Se elevation al principio de su ámbito(起重)和 se inicializa con undefined。 简单例子:

var car = "Mercedes";

var car = "Volkswagen"; // La redeclaración funciona console.log(car) // Imprime: Volkswagen 然而,这种慷慨的灵活性可能会导致大型程序或系统中出现错误或故障。除非有充分的理由,否则不建议使用这种方法。

如果禁运,我们可能会在计划或大系统中犯下错误。我们不建议您使用该产品,因为它是您的最佳选择。

变量声明 La palabra letse utiliza para declarar una variable resignable y de alcance o ambito local de bloque, opcionalmente inicializada con un valor.

主要特征let:

聚合于 ES6 (2015)。 Tiene ámbito de bloque (más seguro que var)。 不要重新声明 el Mismo ambito。 Se puede reasignar. 例如,简单地声明变量罪恶的勇气,或者没有什么:

let varName; En un sentido técnico, esta variable varNamees undefined(indefinida), por lo que le asignaremos un valor:

varName = "Casa"; Como ya ha sido declarada,no volvemos a utilizar la palabra clave let;单独的一个勇敢的人,就像变量名称一样, agregamos el operador de asignación ( =), y asignamos el valor "Casa" que es de tipo stringen este caso.

Sin 禁运,esto resulta poco práctico。 Una forma más sencilla de realizar el trabajo sería la siguiente:

let varName = "Casa"; 使用 palabra clave let,名称为“identificador”的变量,是您的勇气。

Siendo más claro y conciso:

let color = "azul";

// let color = "rojo"; Error: Ya ha sido declarada

color = "rojo"; // La reasignación funciona console.log(color); // Imprime: "rojo" 与 palabra clave 相关的附加变量如下let:

let myDog = "Pipo"; console.log(myDog) // Imprime: "Pipo"

let streetNum = 477 console.log(streetNum) // Imprime: 477

let isFalse = false console.log(isFalse) // Imprime: false 但请注意,存在一个与我们的变量有关的名称的标准形式。在 JavaScript 中,使用驼峰命名法。该公约允许在空间内书写,但可以用可能的方式书写初级文字,但完整的初级文字除外。通过学习变量和函数的元素,您将受益匪浅。

变量 con const的声明 La palabra constse utiliza para declarar una 变量局部 con alcance de bloque。一个常量的分配值可以在指定操作符的中间重新分配中进行初始化和修改。如果禁运,您可能会遇到任何问题,但可能会被取消或取消。

建议声明变量并const确保其无任何价值。

主要特征const:

ES6 的聚合 (2015)。 Tiene alcance de bloque. 请勿重新声明或重新签名。 在声明时刻进行初始化。 const pi = 3.1416;

// pi = 3.14; ✖️ Error: reasignación no permitida console.log(pi); // Imprime: 3.1416 注:海const是可变的,不变的,没有勇气。 Si el valor es un objeto o una matriz(数组),su contenido puede cambiar:

const myArr = [1, 2, 3];

myArr.push(4); // ✔️ Permitido - Se modifica el contenido console.log(myArr); // Imprime: [1, 2, 3, 4]

myArr = [5, 6, 7]; // ✖️ error: Reasignación a una constante Si bien podemos modificar el contenido de la matriz (agregar, eliminar o cambiar elementos), no podemos resignar la matriz completa a un nuevo valor.

Ámbito de las Variables(作用域) 您可以使用可访问的变量。想象一下实际执行中的价值和表达方式,以及可见的内容,以供参考。

Ámbito Global(全球范围) 变量声明为全局变量,因此,变量声明为全局函数的变量,并且是全局变量(O,全局范围)。全局变量是 JavaScript 程序中的全局变量。

变量声明为 con var,leto constcomparten ciertas similitudes cuando se declaran por fuera de un bloque 。全球范围内的所有事项:

var myName = "Martin"; // Ámbito global

let currentYear = 2025 // Ámbito global

const isDeveloper = true // Ámbito global 附加示例 声明函数中的变量,将其传递给全局:

let treeName = "Ceibo"; // La variable treeName puede ser usada aquí sin problemas

function printTreeName() { // La variable treeName puede ser usada aquí también! }

// La variable treeName puede ser usada incluso después de la función Las Variables Globales Tienen Ámbito Global: Web 页面上的所有脚本和功能都可以添加全局变量。 对于操作者来说,声明全局变量var可以自动实现对象属性window(globalThis在现代 JavaScript 中)。 全局变量声明与let其他附加项const 无关window,但请注意脚本中的其他部分可访问的内容。 全局变量可能会引起冲突(dos 脚本使用错误的变量名称)。 根据全局变量的不同,它会导致程序的删除和维护困难,因此需要对程序进行修改。 实践建议:限制全局变量的功能、模块的使用。

Ámbito de Función ( var) 变量声明为可见的,但var其功能是定义的,包括 bloques。

Ejemplo rápido:

function testVar() { if (true) { var message = "Hola desde var!"; } console.log(message); // ✔️ Funciona (Ámbito de función) }

testVar(); // Imprime: Hola desde var 但是,变量定义为无法访问(可见)的功能。这var包括lety const。所有功能。

function myDogName() { var dogName = "Fido"; // Ámbito, o alcance, de función console.log(dogName); }

function myAgeNumber() { var myAge = 25; // Ámbito, o alcance, de función console.log(myAge); }

function isFunctionScoped() { var functionScoped = true; // Ámbito, o alcance, de función console.log(functionScoped); } 就此而言,声明变量声明是 JavaScript 函数中的本地化函数和终端函数的声明。

// La variable carColor no puede usarse aquí

function getCarProps() { let carColor = "grey";

// La variable carColor puede usarse aquí sin problemas }

// La variable carColor no puede usarse aquí Las Variables Locales Tienen ambito de Función 变量 您可以使用该功能的所有功能。 Ningún 脚本可以使用外部功能来添加其他功能。 变量与函数名称有关。 变量与不同的函数有关。 变量区域设置可以创建函数。 区域变量将被消除并完成功能。 参数(parameteros)函数是函数中的变量。 Ámbito de Bloque, o 块范围 ( let& const) 声明的变量可以单独使用let,但const可以通过 ( { ... }) 定义。重要的是要按照组织和结构的要求,尽可能避免任何意外的变量和错误。

function testLetAndConst() { if (true) { let msg1 = "Hola desde let"; const msg2 = "Hola desde const"; console.log(msg1); // ✔️ Funciona console.log(msg2); // ✔️ Funciona } // console.log(msg1); ✖️ Error: msg1 no está definido // console.log(msg2); ✖️ Error: msg2 no está definido }

testLetAndConst(); 注释 变量声明与 palabra clavevar没有 pueden tener alcance de bloque。 声明的变量是var一个块{ ... },可以访问块。 辛特蒂扎达 var忽略群体限制的特殊性。禁运是功能的限制。

lety constrespetan los limites de bloque. Por lo tanto, son un enfoque más seguro y predecible.

理解与其他相关的主要概念的简单方法:

帕拉布拉 安比托 重新声明 升降(提升) 注释 var 功能 ✔️ 是的 ✔️ 缺点undefined Código“遗产”,evitar en lo posible let 布洛克 ✖️ 没有 ✔️ Sin inicialización (TDZ) 可变价值的利用 const 布洛克 ✖️ 没有 ✔️ Sin inicialización (TDZ) Utilizar por defecto 吊装,或“升降” 提升是与 JavaScript 的预先确定相一致的,它包含了函数、变量、类的声明以及代码执行前的高级声明的中间过程。

Elevan 变量声明 在 JavaScript 中,podemos 声明使用的变量; es decir, una Variable puede usarse antes de ser declarada.

Los dos ejemplos siguientes darán el Mismo resultado。

示例 1:

animal = "perro"; // Asignando "perro" a animal

console.log(animal); // Imprime: "perro"

var animal; // Declaración 示例 2:

var animal; // Declaración

animal = "dog"; // Asignando "perro" a animal

console.log(animal); // Imprime: "perro" 声明变量的电动势var,其意义在于参考各方面的特征。如果禁运,您将有意加入一个声明中的变量,并预先确定其价值undefined。在此情况下,我们可以单独声明和初始化预先确定的位置,但没有中间指定的勇气。

console.log(tree); // undefined, o indefinido

var tree = "Pino";

function printColor() { console.log(color); // undefined, o indefinido var color = "Carmesí"; }

printColor(); 附加示例:

var tree;

console.log(tree); // undefined, o indefinido

tree = "Pino";

function printColor() { var color; console.log(color); // undefined, o indefinido var color = "Carmesí"; }

printColor(); El Compatamiento de Elevacion, o Hoisting, en letyconst var与升降机相关的操作let和控制机制之间存在差异const:这是一个整体原则(这对JavaScript 存在意义重大),但必须以声明方式执行。不同之处在于var,它可以提升并自动启动undefined。

Intentar utilizar una Variableantes letde su declaración adecuada dará como resultado un ReferenceError(error dereferenciación)。

请执行声明过程,将变量永久保存为“ zona muerta temporal”。 Esta Zona Muerta Temporal es el período entre la entrada en el ambito donde se declara la variable y la declaración real.在这段时间里,变量技术存在于记忆中,但如果您想添加它,则可以使用参考错误 (ReferenceError)。

console.log(dog); // ReferenceError let dog = "Mastín";

console.log(cat); // ReferenceError let cat = "Persa"; Veamos otro ejemplo:

console.log(year);

displayYear();

function displayYear() { console.log("El año es ", year); }

let year = 2025; 萨利达:

Uncaught ReferenceError: year is not defined 声明中的差异是在预先确定的情况下创建var的,而不是在记忆中提及的。 Debido a este pequeño detalle, se generic un error dereferencia , como se ve en el ejemplo.undefinedyear

Ahora,涉及“颞区死亡”的概念,检查更多细节:

死亡区时间提示: console.log(year);

displayYear();

function displayYear() { console.log("El año es ", year); } 颞部死亡区: let year = 2025; 使用方法的正确格式let:

let year = 2025; console.log(year);

function displayYear() { console.log("El año es ", year); }

displayYear(); Además, también podemos ver que la zona muerta tempede proporcionarnos un claro beneficio a la hora de evitar sobrescrituras Accidentales:

let fruit = "Manzana";

if (true) { // Aquí comienza la zona muerta temporal para la variable fruta en ámbito de bloque console.log(fruit); // ReferenceError let fruit = "Banana"; } Por otro lado, tenemos la palabra clave const:

const horseName; console.log(horseName) 萨利达:

Uncaught SyntaxError: Missing initializer in const declaration Dado que una Constante no puede cambiar su valor middlete asignación ni redeclararse mientras el programa se está ejecutando, debe inicializarse con un valor.

Uso correcto de const:

const horseName = "Duque"; console.log(horseName); 萨利达:

Duque Sombreado de Variables(阴影) 美洲驼可以在内部隐藏的环境中变化,也可以在本地的外部环境中变化。

let name = "Alicia";

function printName() { let name = "Roberto"; console.log(name); // Imprime: Roberto }

printName(); console.log(name); // Imprime: Alicia Dos puntos cclave a tener encuenta:

var允许重新声明,以解决一般错误和意外结果。 letyconst一般错误是有意重新声明的。 var x = 25.4; var x = 32.7; // Ningún error, simplemente se sobrescribe

let y = 18.3; let y = 49.7; // SyntaxError: El identificador 'y' ya ha sido declarado 如果变量的大小与原始变量的访问有关,那么在实际操作中,不会出现任何错误和结果,从而导致问题的发生,也无法理解问题的根源。请注意,建议使用可能的解释变量声明变量,以描述错误的提议和错误的方式。建议在组中声明变量组织,以方便地重复检测其他海洋中的其他变量,以消除因编码而引起的分散。

奖励:Buenas Prácticas En Cuanto a Variables 更倾向于使用const叛逃和let重新分配的要求。 Evitar vartanto como 海上可能,ya que puede 问题起吊,或升降和comportamientos inesperados。 JavaScript 的现代设计是主要的let。const 请注意尽可能限制可能的变量(ámbito de bloque > ámbito de función > global)。 Evitar el Shadowing,o sombreado,a menos que sea intencional,显然,en última instancia,útil。 尽量减少全局变量的使用。这是一些常见的问题,可能会导致一些问题、困难的错误以及不同类型的可降解产品。热情地发布有关本地的声明。 变量和市长声明的缩写。这就是我的勇气undefined,或者不确定,因为可能会出现错误。 使用名称描述变量或连续数据的名称;无论是全球海洋还是地方海洋,法律对于克里人来说都是非常重要的。 投标aagrupar变量关系。 Al conectarlas de forma lógica y sensata, se mejora la gibilidad y se less el riesgo de sombreado , oshadowing .查看更多www.youjiutian.com