2013-05-13 68 views
1

自从我成为一名程序员以来,我一直都很努力,但我有时候会问一些愚蠢的问题。 我还没有一些新技术让我非常老派的程序员。例如下面的代码,就是删除所有的cookies。代码解释 - 我认为它是Lambda表达式

var cookies = document.cookie.split(';'); 
for (var i = 0; i < cookies.length; i++) { 
    var cookie = cookies[i]; 
    var eqPos = cookie.indexOf('='); 
    var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; 
    document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT'; 
} 

在那里它是这样做的

eqPos > -1 ? cookie.substr(0, eqPos) : cookie; 

我不知道这里发生了什么。你能解释一下吗?这是什么类型的符号,我需要学会理解它。

+0

这是一个三元运算符的含义'if(eqPos> -1)cookie.substr(0,eqPos); else cookie;'结果被分配给'name'。 – C5H8NNaO4 2013-05-13 06:09:45

+0

除了C5H8NNaO4的评论,它不是一个lambda表达式。三元运算符也称为条件运算符。具有示例用法的更多信息可在[MDN]处获得(https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator)。 – nnnnnn 2013-05-13 06:17:12

回答

1

是短,如果statment, 这是条件

eqPos > -1 

名称将是:

cookie.substr(0, eqPos) 

如果条件为真:

cookie 

如果它是假的

+0

三元运算符.... – Moon 2013-08-05 04:19:24