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实现层随着内容大小动态渐变改变 推荐
Dec 19 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
Feb 17 Javascript
jQuery层动画定位滑动效果的方法
Apr 30 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
May 12 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
Aug 31 Javascript
深入理解Node.js 事件循环和回调函数
Nov 02 Javascript
Angular通过angular-cli来搭建web前端项目的方法
Jul 27 Javascript
ionic+html5+API实现双击返回键退出应用
Sep 17 Javascript
Echarts地图添加引导线效果(labelLine)
Sep 30 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
Jul 17 Javascript
vue中 this.$set的使用详解
Nov 17 Vue.js
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 远程关机操作的代码
2008/12/05 PHP
php有道翻译api调用方法实例
2014/12/22 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
动态的创建一个元素createElement及删除一个元素
2014/01/24 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
2016/08/01 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
2019/04/30 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
Python面向对象特殊成员
2017/04/24 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
PyTorch-GPU加速实例
2020/06/23 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
比较基础的php面试题及答案-填空题
2014/04/26 面试题
设备动力科岗位职责范本
2014/02/23 职场文书
爱护草坪标语
2014/06/24 职场文书
自荐信大全
2019/03/21 职场文书
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python