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 相关文章推荐
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
Mar 14 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
Dec 12 Javascript
js 判断文件类型并控制表单提交示例代码
Nov 14 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
May 14 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
Nov 26 Javascript
javascript实现下雪效果【实例代码】
May 03 Javascript
基于JS组件实现拖动滑块验证功能(代码分享)
Nov 18 Javascript
微信小程序 Template详解及简单实例
Jan 05 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
Jan 17 Javascript
node.js 抓取代理ip实例代码
Apr 30 Javascript
bootstrap table合并行数据并居中对齐效果
Oct 17 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
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
php不用内置函数对数组排序的两个算法代码
2010/02/08 PHP
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
2017/07/03 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
总结js函数相关知识点
2018/02/27 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
[02:04]完美世界城市挑战赛秋季赛报名开始 谁是solo路人王?
2019/10/10 DOTA
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
python sort、sorted高级排序技巧
2014/11/21 Python
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
3D空间设计学生找工作的自我评价
2013/10/28 职场文书
社区工作者思想汇报
2014/01/13 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
科长个人四风问题整改措施思想汇报
2014/10/13 职场文书
学习委员竞选稿
2015/11/20 职场文书
Django migrate报错的解决方案
2021/05/20 Python
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL