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预览上传图片发现的问题的解决方法
Nov 25 Javascript
JavaScript中判断函数是new还是()调用的区别说明
Apr 07 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
Sep 10 Javascript
JavaScript省市联动实现代码
Feb 15 Javascript
一个字符串反转函数可实现字符串倒序
Sep 15 Javascript
js和jquery分别验证单选框、复选框、下拉框
Dec 17 Javascript
javascript每日必学之封装
Feb 23 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
Jun 06 Javascript
动态加载css方法实现和深入解析
Jan 18 Javascript
Vue.Draggable拖拽功能的配置使用方法
Jul 29 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
Vue实现PC端靠边悬浮球的代码
May 09 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
文件系统基本操作类
2006/11/23 PHP
php array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
如何取得中文输入的真实长度?
2006/06/24 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
微信小程序实现运动步数排行功能(可删除)
2018/07/05 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
python自动化报告的输出用例详解
2018/05/30 Python
在python环境下运用kafka对数据进行实时传输的方法
2018/12/27 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
wxPython实现文本框基础组件
2019/11/18 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
基于python监控程序是否关闭
2020/01/14 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
Python实现手绘图效果实例分享
2020/07/22 Python
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
大学生自我鉴定
2013/12/08 职场文书
伏羲庙导游词
2015/02/09 职场文书