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 相关文章推荐
jQuery表单验证插件formValidator(改进版)
Feb 03 Javascript
Javascript中的默认参数详解
Oct 22 Javascript
jquery实现勾选复选框触发事件给input赋值
Feb 01 Javascript
JavaScript实现的简单拖拽效果
Jun 01 Javascript
Node.js中使用socket创建私聊和公聊聊天室
Nov 19 Javascript
简单封装js的dom查询实例代码
Jul 08 Javascript
js实现图片缓慢放大缩小效果
Aug 02 Javascript
Vue的移动端多图上传插件vue-easy-uploader的示例代码
Nov 27 Javascript
Koa日志中间件封装开发详解
Mar 09 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
Sep 10 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
Jan 07 Javascript
ES6 Generator基本使用方法示例
Jun 06 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
JavaScript 变量命名规则
2009/09/23 Javascript
js cookies实现简单统计访问次数
2009/11/24 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
JavaScript中push(),join() 函数 实例详解
2016/09/06 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
tensorflow中next_batch的具体使用
2018/02/02 Python
python对于requests的封装方法详解
2019/01/03 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
Python面向对象封装操作案例详解
2019/12/31 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
诉讼授权委托书
2014/10/15 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
处理canvas绘制图片模糊问题
2022/05/11 Javascript