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


Posted in Javascript onJune 12, 2015

一、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 的部分任务。

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

Javascript 相关文章推荐
javascript正则表达式定义(语法)总结
Jan 08 Javascript
js闭包引起的事件注册问题介绍
Mar 29 Javascript
使用jquery提交form表单并自定义action的方法
May 25 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
Jun 05 Javascript
简单实现JS倒计时效果
Dec 23 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 jQuery
在vue中获取dom元素内容的方法
Jul 10 Javascript
使用 Node.js 开发资讯爬虫流程
Jan 07 Javascript
JavaScript基于数组实现的栈与队列操作示例
Dec 22 Javascript
Vue elementui字体图标显示问题解决方案
Aug 18 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 Javascript
nuxt.js写项目时增加错误提示页面操作
Nov 05 Javascript
JS中处理时间之setUTCMinutes()方法的使用
Jun 12 #Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
Jun 12 #Javascript
JavaScript中setUTCFullYear()方法的使用简介
Jun 12 #Javascript
禁止按回车键提交表单的方法
Jun 11 #Javascript
JavaScript中的setUTCDate()方法使用详解
Jun 11 #Javascript
简介JavaScript中的setTime()方法的使用
Jun 11 #Javascript
JS/Jquery判断对象为空的方法
Jun 11 #Javascript
You might like
PHP时间格式控制符对照表分享
2013/07/23 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
PHP实现文件上传与下载
2020/08/28 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
javascript demo 基本技巧
2009/12/18 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
jquery实现限制textarea输入字数的方法
2017/09/06 jQuery
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
JS实现密码框效果
2020/09/10 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
Python中用于转换字母为小写的lower()方法使用简介
2015/05/19 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
python用requests实现http请求代码实例
2019/10/31 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
幼儿园父亲节活动总结
2015/02/12 职场文书
车位出租协议书范本
2016/03/19 职场文书
python游戏开发之pygame实现接球小游戏
2022/04/22 Python