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的部分任务。
以上所述就是本文的全部内容了,希望大家能够喜欢。