一、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 的部分任務。
以上所述就是本文的全部內容了,希望大家能夠喜歡。