자바스크립트에서 "!--"는 무슨 일을하는거죠?
조회수 1929회
var walk = function(dir, done) {
var results = [];
fs.readdir(dir, function(err, list) {
if (err)
return done(err);
var pending = list.length;
if (!pending)
return done(null, results);
list.forEach(function(file) {
file = path.resolve(dir, file);
fs.stat(file, function(err, stat) {
if (stat && stat.isDirectory()) {
walk(file, function(err, res) {
results = results.concat(res);
if (!--pending)
done(null, results);
});
} else {
results.push(file);
if (!--pending)
done(null, results);
}
});
});
});
};
인터넷에서 이런 코드를 보게되었는데 코드를 해석하다가 !--pending
이라는 줄을 보고 제가 아는 지식에서는 본적없는 구문이라 질문드립니다. !--는 대체 무슨 코드이며 어떤 일을 하는지 알려주세요.
1 답변
-
!--
연산자는!
와--
가 합쳐진 연산자입니다. 그냥 붙여쓴건데요. 우선 !연산자는 값을 invert해주는 연산자로!true == false !false == true !1 == false !0 == true
이런식으로 true면 false로 false면 true로 만들어줍니다.
그리고 --연산자는 값을 1감소시키는 연산자입니다.
var a = 1, b = 2; --a == 0 --b == 1
이런 식으로요.
참고로 !연산자에서 숫자의경우는 0이아니면 0으로만들고 0이면 1로 만들어줍니다.
pending = 2; !--pending == false pending = 1; !--pending == true pending = 0; !--pending == false
이런식으로 말이죠.
댓글 입력