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代码
Aug 29 Javascript
基于jQuery架构javascript基础体系
Jan 01 Javascript
jquery中dom操作和事件的实例学习-表单验证
Nov 30 Javascript
JS方法调用括号的问题探讨
Jan 24 Javascript
jQuery循环遍历子节点并获取值的方法
Apr 14 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
May 23 Javascript
js 创建对象 经典模式全面了解
Aug 16 Javascript
js获取浏览器的各种属性
Apr 27 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
Dec 22 Javascript
浅谈Node 异步IO和事件循环
May 05 Javascript
js中比较两个对象是否相同的方法示例
Sep 02 Javascript
node.js express捕获全局异常的三种方法实例分析
Dec 27 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
Laravel路由设定和子路由设定实例分析
2016/03/30 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
js 加载时自动调整图片大小
2008/05/28 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
Python性能提升之延迟初始化
2016/12/04 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
Python File readlines() 使用方法
2018/03/19 Python
python3处理含有中文的url方法
2018/05/10 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
Python常用编译器原理及特点解析
2020/03/23 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
ORACLE第二个十问
2013/12/14 面试题
美发店5.1活动方案
2014/01/24 职场文书
薪酬专员岗位职责
2014/02/18 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
四风个人对照检查材料思想汇报
2014/09/25 职场文书
欠款起诉书范文
2015/05/19 职场文书
离婚案件上诉状
2015/05/23 职场文书
2015年党小组工作总结
2015/05/26 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
AJAX实现省市县三级联动效果
2021/10/16 Javascript