gpt4 book ai didi

javascript - 有人可以解释感叹号吗?

转载 作者:行者123 更新时间:2023-12-01 15:55:34 24 4
gpt4 key购买 nike

    const string = "Hello There";
const chars ={};

for(let character of string){
if(!chars[character]){
chars[character] = 1;
}else{
chars[character]++;
}
}
console.log(chars);

以下代码将打印字符串中出现的唯一字母的数量。我知道感叹号的意思是“假”,但我不明白它在下面的例子中代表什么:

!chars[character]

我很难理解它是如何与其他字符进行比较的,因为它清楚地说明了 char[at a current i]。如果有人可以举一个更简单的例子。试了调试,还是看不懂。

最佳答案

! 反转表达式的真实性。由于 chars 开始时是一个空对象,因此第一次遍历字符时,它不会存在于对象的属性上;它将是 undefined。例如,对于 H:

chars[character]
// equivalent to
chars.H
// resolves to
undefined

// putting ! in front of it makes it truthy instead:
!undefined -> true

所以 if(!chars[character]){ 是说:如果这个字符在对象上还不存在,则执行以下 block :

  chars[character] = 1;
} else {
// The character has already been iterated over;
// it exists on the object, and the value is a number
// Increment that number:
chars[character]++;
}

关于javascript - 有人可以解释感叹号吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61450510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com