2014-09-24 116 views
1

我剛剛得到了這個腳本進行調試,並不知道以下部分的含義。Javascript函數定義

var qns =() => site + status + "\ 
" 
let status = "true"; 

以前沒有定義變量狀態。

+0

請提供您的腳本 – ashokhein 2014-09-24 05:14:21

+0

[Mozilla中的ECMAScript 6支持](https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla) – Teemu 2014-09-24 05:23:56

回答

4

這是JavaScript 1.7,目前在Firefox上可用,但在大多數其他瀏覽器上不可用。

var qns =() => site + status + "\ 
" 

等同,但短於:

var qns = function() { 
    return site + status + "\n"; 
} 

(不知道是否換行符是有效與否)。 Arrow functions on MDN

let status = true與範圍以外的var status = true相同:只會爲包含塊聲明它。例如,

if (true) { 
    var x = 1; 
    let y = 2; 
    console.log(x); // => 1 
    console.log(y); // => 2 
} 
console.log(x); // => 1 
console.log(y); // => undefined 

順便說一句,變量status並不需要你的行前聲明;如果在稍後調用qns()之前聲明就足夠了。 let statement on MDN