当前位置: 首页 > 编程笔记 >

JS中产生标识符方式的演变

段干瑞
2023-03-14
本文向大家介绍JS中产生标识符方式的演变,包括了JS中产生标识符方式的演变的使用技巧和注意事项,需要的朋友参考一下

一、ES5时代

var
function
我们知道 JS 不象其它语言 Java、Ruby等,它用来命名变量的只有关键字 var,不论何种类型数据都用 var 声明,当然弱类型并不代表该语言没有类型,它的类型在运行时(根据不同运算符)会隐式转换。而其它语言如Java,光声明数字的关键字就有 int、 float、double、long。

// JS
var num1 = 10;   // 整数
var num2 = 10.1;  // 浮点数
var str   = 'John'; // 字符串
var boo   = false; // 布尔
var obj   = {};  // 对象



// Java
int num1   = 10;
double num2  = 10.2;
String str   = "John";
Boolean boo = false;
 

JS 里标识符除了使用 var 产生,还有一个 function 关键字也可以产生标识符。function 类型声明的标识符的可能是函数、方法或构造器(类)。

// functions
function fetchData(url, param) {
  // ... 
}
 
// methods
var obj = {
  getUrl: function() {
  }
};
 
// class
function Person(name, age) {}
Person.prototype = {
}
 

二、ES6时代

var
function
let
const
class
可以看到,ES6 增加了3个可以产生标识符的关键字 let/const/class。let/const 用来声明变量,class 用来定义类。

// 定义普通变量
let name = 'John';
for (let i = 0; i < arr.length; i++) {
}
if (boo) {
  let obj = {};
  ...
}
 
// 定义常量
const PI = 3.1415926;
const $el = $('.nav');
 
// 定义类
class Point {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }
  toString() {
    return '('+this.x+', '+this.y+')';
  }
}

ES6时代,可以想象我们的代码风格里应该是 “少var多let”,let 和 const 都具有块级作用域,且不会发生变量提升。而声明类,也都会使用 class 了,class 关键字分担了 function 的部分任务。

以上所述就是本文的全部内容了,希望大家能够喜欢。

 类似资料:
  • When considering portability between databases, another important decision is selecting the identifier generation stratagy you want to use. Originally Hibernate provided the native generator for this

  • 本文向大家介绍PHP生成不重复标识符的方法,包括了PHP生成不重复标识符的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP生成不重复标识符的方法。分享给大家供大家参考。具体实现方法如下: 生成唯一不重复的标识我们主要是根据当前的一个时间time然后再转换在md5值,这样几乎是可以保证标签的唯一性,下面整理了一些关于PHP生成不重复标识符程序代码,感兴趣的朋友可以来看一下 PHP倒

  • 比如,你用标准regex库来写一个正则表达式,但正则表达式中的反斜杠’\’其实却是一个“转义(escape)”操作符(用于特殊字符),这相当令人讨厌。考虑如何去写“由反斜杠隔开的两个词语”这样一个模式(\w\\w): string s = "\\w\\\\\\w"; // 希望它是对的(译注:不直观、不美观,且容易出错) 请注意,在正则表达式和普通C++字符串中,各自都需要使用连续两个反斜杠来

  • 问题内容: 阅读MDN生成器的文档后,我想到了一个简单的实验: 在设置了标志的node.js v0.11.9上运行它会产生以下错误: 我也尝试使用and 关键字代替,但是没有成功。 我不明白到底是什么,但是如果我在循环中使用它,我会得到: 如果我用输出替换for中的收益,则和。我究竟做错了什么? 编辑 这是一个简约的生成器,显示node.js知道如何处理生成器: 输出: 解决方案(感谢@Andre

  • 问题内容: 我想建立一个Python函数来计算 并想命名我的求和函数Σ。以类似的方式,想将Π用于产品,依此类推。我想知道是否有一种以这种方式命名python函数的方法? 也就是说,Python是否支持unicode标识符,如果支持,有人可以提供示例吗? 谢谢! 最初的动机是我今天看到的一段Clojure代码, 其中Σ是定义为的宏, 我觉得那很酷。 顺便说一句,要解决一些关于可读性的评论-例如,使用

  • EL表达式中的变量和自定义函数名被称为标识符。与Java中的标识符的规则相同。在EL表达式中的标识符可以由任何大小写的字母、数字或下划线组成。但标识符不能以数字开头,也不能是EL中的保留字(将在下一节介绍EL表达式中的保留字)、EL内置对象名以及一些特殊的字符,如单引号(')、双引号(")、减号(-)和斜杠(/)等。例如,name、product32、new_bike都是合法的标识符,而12pro