2014-09-24 98 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