JS中产生标识符方式的演变
一、ES5时代
var
function
我们知道JS不象其它语言Java、Ruby等,它用来命名变量的只有关键字var,不论何种类型数据都用var声明,当然弱类型并不代表该语言没有类型,它的类型在运行时(根据不同运算符)会隐式转换。而其它语言如Java,光声明数字的关键字就有int、float、double、long。
//JS
varnum1=10;//整数
varnum2=10.1;//浮点数
varstr='John';//字符串
varboo=false;//布尔
varobj={};//对象
//Java intnum1=10; doublenum2=10.2; Stringstr="John"; Booleanboo=false;
JS里标识符除了使用var产生,还有一个function关键字也可以产生标识符。function类型声明的标识符的可能是函数、方法或构造器(类)。
//functions
functionfetchData(url,param){
//...
}
//methods
varobj={
getUrl:function(){
}
};
//class
functionPerson(name,age){}
Person.prototype={
}
二、ES6时代
var
function
let
const
class
可以看到,ES6增加了3个可以产生标识符的关键字let/const/class。let/const用来声明变量,class用来定义类。
//定义普通变量
letname='John';
for(leti=0;i<arr.length;i++){
}
if(boo){
letobj={};
...
}
//定义常量
constPI=3.1415926;
const$el=$('.nav');
//定义类
classPoint{
constructor(x,y){
this.x=x;
this.y=y;
}
toString(){
return'('+this.x+','+this.y+')';
}
}
ES6时代,可以想象我们的代码风格里应该是“少var多let”,let和const都具有块级作用域,且不会发生变量提升。而声明类,也都会使用class了,class关键字分担了function的部分任务。
以上所述就是本文的全部内容了,希望大家能够喜欢。