「翻译系列」

您所在的位置:网站首页 嗅觉探测器 「翻译系列」

「翻译系列」

2022-12-20 10:22| 来源: 网络整理| 查看: 265

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第 1⃣️ 天, 点击查看活动详情

信息卡片

🔗原文链接:www.developer.com/languages/j… ✒️作者:Robert Gravelle

你可能听说过这样说法:JavaScript是一种松散类型的语言。那是因为开发者不必指定数据类型,但这并不意味着JavaScript没有变量(或者数据类型);只是JavaScript解释器会根据变量的值选择其数据类型,并生成相应的可执行代码。在这篇文章中,我们将会看到JavaScript是如何声明和设置变量,一些作用域的基础知识,Hoisting(笔者保留Hoisting,中文翻译一般是变量提升,但感觉不是准确的,因为还有函数提升,所以保留英文),以及应该给什么样的变量名。

如何声明和设置变量

在此开始之前,我们首先要确定变量是在哪个作用域,它有两个作用域:局部作用域和全局作用域。

局部作用域包括函数作用域和块级作用域(比如使用const,let,在函数中使用var并且只能在本函数中可访问到):

function aFunction() { var myLocalVar = 99; //局部变量 console.log(myLocalVar); //99 } console.log(myLocalVar); //报错: myLocalVar未定义 复制代码

另一方面,全局变量是指不用const,let,var这些关键字,或者直接在全局环境中直接添加。这样一旦声明了,这个变量就能访问全局作用域的任何地方。它们可以在函数外声明,也可以明确添加到window对象中,比如下面:

globalVar = 'I am global!'; function aFunction() { var myLocalVar = 99; //local variable console.log(myLocalVar); //99 //Inside aFunction: I am global! console.log('Inside aFunction: ' + globalVar); window.anotherGlobalVar = 4.5; } aFunction(); //函数外 console.log('Outside a function: ' + globalVar); // I am global //window对象 console.log('anotherGlobalVar = ' + anotherGlobalVar);// 4.5 复制代码 let,const和var

JavaScript语言自从1995年成立到2015年之内,一直只有var声明局部变量。然后到ES6才出现let,cost。我们开发者应该多使用let,const来声明,除非你需要考虑兼容老旧的浏览器。事实上,如果可以的话,最好使用const,它意味着变量的值不可改变,不容易被改动的。除非是需要动态改变值,才可以用let。

Read:  Working with Output in JavaScript

声明多个变量

在js中,我们可以在一行中声明多个变量:

let bandMember1 = 'John', age = 29, job = 'vocalist'; 复制代码

有时会有很多变量的情况,这就会看到很长的一行,可读性不太好。为了提高可读性,建议每个变量就每一行,比如下面:

let bandMember1 = 'John', age = 29, job = 'vocalist'; 复制代码

有些人喜欢用“逗号优先”的风格,比如下面:

let bandMember1 = 'John' , age = 29 , job = 'vocalist'; 复制代码

两个都可以!

Hoisting以及对变量的影响

Hoisting是一个比较复杂的话题,它与声明变量有关,特别是用var。Hoisting是因为JavaScript解释器在执行代码之前,会把函数、变量和声明移到其范围的顶部,这样该变量被声明之前就能被访问到。如果没有Hoisting,函数就没办法工作,比如下面的getName(),它被声明之前就调用:

getName(bandMember1); function getName(name) { console.log(`My name is ${name}`); } 复制代码

变量的情况也是如此,它被声明之前也可以被引用的,它的值将会是undefined,比如下面:

console.log(num); // undefined,不报错,因为num被提升了 var num = 6; // 声明并且赋值了 console.log(num); // 6 复制代码

var,它是唯一允许你重复声明同样的变量名,事实上,你可以随心所欲地命名同一个变量名,比如下面:

function aFunction() { var myLocalVar = 99; //local variable console.log(myLocalVar); //99 var myLocalVar = 100; console.log('The new myLocalVar = ' + myLocalVar); //100 } 复制代码

欲知详解,看看这个.

命名规则以及约定

变量名在js上称为标识符,可以取短名,比如x,y,也可以取长名,比如age, sum, totalVolume。变量名的一般规则是:

可以包含字母、数字、_ 和 $,但必须以字母开头 也可以以 _ 和 $ 开头 变量名是区分大小写 变量名不能用关键字或者保留字(比如class,throw,if)

虽说遵遁上述规则可以避免编译报错,但我们开发人员也不能随意命名。这里有几点建议的写法:

组合单词时,使用驼峰法(除了第一个字母),比如:myAwesomeVariable 要有描述性的,比如说yearlyInterestRate 或者 employeeMiddleName,比单个字母或者难懂的单词强多了。除了循环体用单个字母,比如下面: for (let i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3