Maison >interface Web >Questions et réponses frontales >Y a-t-il une esperluette dans es6 ?
a une esperluette. Dans es6, "&&" est un opérateur ET logique, qui est une opération booléenne AND. La syntaxe est "opérande 1 && opérande 2" uniquement lorsque les deux opérandes sont vrais, elle renvoie vrai, sinon elle renvoie faux. Le ET logique est une sorte de logique de court-circuit. Si l'expression de gauche est fausse, le résultat est directement court-circuité et renvoyé, et l'expression de droite n'est plus évaluée.
L'environnement d'exploitation de ce tutoriel : système Windows 7, ECMAScript version 6, ordinateur Dell G3.
Il y a un symbole & dans es6, et "&&" est l'opérateur logique AND.
Opération ET logique &&
L'opération ET logique (&&) est une opération booléenne ET. Renvoie vrai uniquement si les deux opérandes sont vrais, sinon renvoie faux. La description détaillée est présentée dans le tableau.
Premier opérande | Deuxième opérande | Résultat de l'opération |
---|---|---|
vrai | vrai | vrai |
vrai | faux | faux |
faux | vrai | faux |
faux | faux | faux |
Exemple 1
Le code suivant utilise des opérations ET logiques pour détecter les variables et les initialiser.
var user; //定义变量 (! user && console.log("没有赋值")); //返回提示信息“没有赋值”
est équivalent à :
var user; //定义变量 if (! user){ //条件判断 console.log("变量没有赋值"); }
Si la valeur de la variable user est 0 ou si une valeur fausse telle qu'une chaîne vide est convertie en valeur booléenne, elle sera fausse. Ensuite, une fois que la variable aura reçu une valeur, elle le sera. indique toujours que la variable n'a pas reçu de valeur. Par conséquent, lors de la conception, vous devez vous assurer que la valeur de retour de l’expression située à gauche du ET logique est une valeur prévisible.
var user = 0; //定义并初始化变量 (! user && console.log("变量没有赋值")); //返回提示信息“变量没有赋值”
L'expression de droite ne doit pas contenir d'opérations valides telles que l'affectation, l'incrémentation, la décrémentation et l'appel de fonction, car lorsque l'expression de gauche est fausse, l'expression de droite sera ignorée directement, ce qui aura un potentiel impact sur les opérations ultérieures.
Exemple 2L'utilisation d'opérateurs ET logiques peut remplacer la conception de structures à plusieurs branches.
var n = 3; (n == 1) && console.log(1); (n == 2) && console.log(2); (n == 3) && console.log(3); ( ! n ) && console.log("null");
Le code ci-dessus est équivalent à la structure multi-branches suivante.
var n = 3; switch(n){ case1: console.log(1); break; case2: console.log(2); break; case3: console.log(3); break; default: console.log("null");
L'opérande de l'opération ET logique peut être n'importe quel type de valeur et renvoie la valeur de l'expression d'origine au lieu de convertir l'opérande en valeur booléenne puis de la renvoyer.
1) Vrai lorsque l'objet est converti en valeur booléenne. Par exemple, un objet vide est logiquement associé à une valeur booléenne.
console.log(typeof ({} && true)); //返回第二个操作数的值 true的类型:布尔型 console.log(typeof (true && {})); //返回第二个操作数的值 {}的类型:对象
2) Si l'opérande contient null, la valeur de retour est toujours nulle. Par exemple, l'opération ET logique de la chaîne « null » avec une valeur de type null renvoie toujours null quelle que soit la position.
console.log(typeof ("null" && null)); //返回null的类型:对象 console.log(typeof (null && "null")); //返回null的类型:对象
3) Si l'opérande contient NaN, la valeur de retour est toujours NaN. Par exemple, l'opération ET logique de la chaîne « NaN » avec une valeur de type NaN renvoie toujours NaN quelle que soit la position.
console.log(typeof ("NaN" && NaN)); //返回NaN的类型:数值 console.log(typeof (NaN && "NaN")); //返回NaN的类型:数值
4) Pour Infinity, il sera converti en vrai et participera aux opérations ET logiques comme les valeurs ordinaires.
console.log(typeof ("Infinity" && Infinity)); //返回第二个操作数Infinity的类型:数值 console.log(typeof (Infinity && "Infinity")); //返回第二个操作数"Infinity"的类型:字符串
5) Si l'opérande contient undéfini, renvoie undéfini. Par exemple, l'opération ET logique de la chaîne « undéfini » avec une valeur de type undéfini renvoie toujours undéfini, quelle que soit la position. console.log(typeof ("undefined" && undefined)); //返回undefined
console.log(typeof (undefined && "undefined")); //返回undefined
Connaissances étendues : les opérations peu connues de && et __ dans ES6
Comme nous le savons tous, dans es6, l'opérateur logique && représente la condition, || représente la condition oulet info = {
name:"long",
age:null
};
//&&
//info的name与age同时为真,则结果为真
if(info.name && info.age){
console.log("与条件"); //与条件
}else{
console.log("失败");
}
//||
//info的name或age,只要有一个为真,则结果为真
if(info.name || info.age){
console.log("或条件"); //或条件
}else{
console.log("失败");
}
Cependant, ils peuvent également être simplifiés au nom de if/elselet info = {name:"long"};
let name = info && info.name; //long
let isVip = false;
let vipPrice = isVip || 19;//19
decide() && true();
//如果decide()执行后为true,则执行true(),并输出true()的值;如果decide()执行后为false,则输出decide()执行后的结果,且不执行true()
//预计使用场景,有一个mongo查询条件where,当name存在时,匹配name数据
where= {age:19};
name && where.name = name;
decide() || false();
//如果decide()执行后为true,则执行decide(),并输出decide()的值,fasle()不执行;如果decide()执行后为false,则执行fasle(),且输出false()的结果
decide() && true() || fasle();
//如果decide()执行后为true,则执行true(),并输出true()的值;
//如果decide()执行后为false,则执行false(),并输出false()的值
[Recommandations associées : tutoriel vidéo javascript,
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!