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 相关文章推荐
使用js的replace()方法查找字符示例代码
Oct 28 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
Nov 11 Javascript
开发中可能会用到的jQuery小技巧
Mar 07 Javascript
js倒计时简单实现方法
Dec 17 Javascript
Bootstrap每天必学之导航条(二)
Mar 01 Javascript
浅析Javascript ES6中的原生Promise
Aug 25 Javascript
jQuery实现一个简单的轮播图
Feb 19 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
Mar 06 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
Nov 01 jQuery
基于canvas实现手写签名(vue)
May 21 Javascript
vue接通后端api以及部署到服务器操作
Aug 13 Javascript
如何在Express4.x中愉快地使用async的方法
Nov 18 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下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
2017/07/07 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
JavaScript 中的replace方法说明
2007/04/13 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
javascript获取当前鼠标坐标的方法
2015/01/10 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
Vue中保存数据到磁盘文件的方法
2018/09/06 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
CSS3 不定高宽垂直水平居中的几种方式
2020/03/26 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
《在家里》教后反思
2014/03/01 职场文书
2014年共青团工作总结
2014/12/10 职场文书
写给导师的自荐信
2015/03/06 职场文书
检讨书格式
2015/05/07 职场文书
爱心捐款活动总结
2015/05/09 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python