JavaScript中有哪些强大的运算符

技术JavaScript中有哪些强大的运算符小编给大家分享一下JavaScript中有哪些强大的运算符,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、??空值合并运算符如果你第一次遇到它,看到的是两个

边肖将和大家分享一些JavaScript中强大的操作符。希望大家看完这篇文章后有所收获。我们一起讨论一下吧!

00-1010如果是第一次遇到,会看到两个问号。估计你脑子里的问号会更多(你的问号多吗~ ~ ~)?

两个问号?它被称为空值组合运算符。如果第一个参数不是null/undefined,则返回第一个参数;否则,它将返回第二个参数。

console.log(1?www . shanzhzonglei.com ');//1

console.log(false?www . shanzhzonglei.com ');//false

console.log(null?www . shanzhzonglei.com ');//www . shanzzhsonglei.com

console.log(未定义?www . shanzhzonglei.com ');//////www . shanzzhsonglei.com因此,只有当第一个参数为null/undefined时,才会返回第二个参数。

请注意,尽管未定义,JS中的空对象null、数值0、空数字NaN、布尔值false和空字符串“”都是false值,非null运算符只处理null/undefined。

与逻辑或运算符(||)不同,当左操作数为假时,逻辑或运算符返回右操作数。例如,当它是假值('或0)时。

console . log(1 | | 2);//1

console . log(“| | 2”);//2

一、??空值合并运算符

哦,现在不仅有两个问号,还有一个等号。问题是不是越来越难了?

?=null赋值运算符,仅当值为null或未定义时才赋值。

const student={ age :20 };

学生年龄?=18;

console.log(学生.年龄);//20

学生姓名?=' shanguaguagua ';

console . log(student . name);///《山瓜瓜》它和上面的一样吗?空值组合运算符相关:x?=y相当于x?(x=y),只有当x为null或未定义时,才会执行x=y。

letx=null

x?=20;

console . log(x);//20

lety=5;

你呢。=10;

console . log(y);//5

二、??=空赋值运算符

可选连锁运营商?允许读取位于连接对象链深处的属性值,而无需显式验证链中的每个引用是否有效。运算符隐式检查对象的属性是null还是undefined,这使得代码更加优雅简洁。

const obj={ 0

名为:‘山呱呱’,

foo:{

bar:{

baz:18,

fun:()={},

},

},

学校:{

学生[

{

(=NationalBureauofStandards)国家标准局

p;     name: "shanguagua",
      },
    ],
  },
  say() {
    return "www.shanzhonglei.com";
  },
};
console.log(obj?.foo?.bar?.baz); // 18
console.log(obj?.school?.students?.[0]["name"]); // shanguagua
console.log(obj?.say?.()); // www.shanzhonglei.com

四、?:三元运算符

它也叫三目运算符。额,这个就很常用了。

对于条件表达式b ? x : y,先计算条件 b,然后进行判断。如果 b 的值为 true,计算 x 的值,运算结果为 x 的值;否则,计算 y 的值,运算结果为 y 的值。

console.log(false ? 1 : 2); // 2
console.log(true ? 1 : 2); // 1

五、逻辑与(&&)和逻辑或(||)

先来复习一下吧:

逻辑与(&&):当第一个操作数为 true 时,将不会判断第二个操作数,因为无论第二个操作数为何,最后的运算结果一定是 true。

实际开发中,利用设个特性,可实现如下操作:

1、如果某个值为 true,则运行某个 function

function say() {
  console.log("www.shanzhonglei.com");
}
let type = true;
type && say(); // www.shanzhonglei.com

2、判断某个值

// 如果age大于10并且小于20才会执行
if (age > 10 && age < 20) {
  console.log(age);
}

逻辑或(||): 当第一个操作数为 false 时(也就是 js 的假值),将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是 false。

实际开发中,利用设个特性,可实现如下操作:

1、给某个变量设置初始值

let student = {
  name: "shanguagua",
};
console.log(student.age || "www.shanzhonglei.com"); // www.shanzhonglei.com

2、判断某个值

// 如果age等于10或者等于20或者等于30都执行
if (age === 10 || age === 20 || age === 30) {
  console.log(age);
}

六、位运算符 & 和 |

位运算符是按位进行运算,&(与)、|(或),使用位运算符时会抛弃小数位,我们可以利用|0来给数字取整。也可以使用&1来判断奇偶数。

实际开发中,利用设个特性,可实现如下操作:

1、取整

1.3 |
  (0 - // 打印出 1
    1.9) |
  0; // 打印出 -1

2、判断奇偶数

let num = 5;
!!(num & 1); // true
!!(num % 2); // true

七、双位运算符 ~~

可以使用双位操作符来替代正数的 Math.floor( ),替代负数的 Math.ceil( )。

双否定位操作符的优势在于它执行相同的操作运行速度更快,对正数来说~~运算结果与 Math.floor( ) 运算结果相同,而对于负数来说与 Math.ceil( ) 的运算结果相同。

Math.floor(5.2) === 5; // true
~~3.2 === 3; // true
Math.ceil(-6.6) === -6; // true
~~-4.5 === -6; // true

七、逻辑运算符 !

!,可将变量转换成 boolean 类型,null、undefined 和空字符串''取反都为 true,其余都为 false。一般来说会有好几种用法,!,!!,!=,!==。

7.1 利用!取反

let cat = false;
console.log(!cat); // true

7.2 利用!!做类型判断

判断变量 a 不等于 null,undefined 和''才能执行的方法。

var a;
if (a != null && typeof a != undefined && a != "") {
  //a有内容才执行的代码
}

等价于:

if (!!a) {
  //a有内容才执行的代码...
}

7.3 两个值是否相等

一般来说都是用的全不等于!==,因为使用不等于!=的话,0 != ""返回的是 false,原因是 JS 中 0 和''转化成布尔型都为 false,所以推荐还是使用全不等于!==。

let a = 0;
let b = 0;
let c = "0";
let d = '';
a != b       //false
a != c      // false    number和string的0 被判断为相等
a != d      // false    0和空字符串被判断为相等
a !== b    // false
a !== c   // true
a !== d   // true

看完了这篇文章,相信你对“JavaScript中有哪些强大的运算符”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/88241.html

(0)

相关推荐

  • 含卧字的成语典故,卧字的成语典故是什么主人公是

    技术含卧字的成语典故,卧字的成语典故是什么主人公是典故含卧字的成语典故:春秋时期,吴越两邻国,经常打仗,有次吴王领兵攻打越国,被越王勾践的大将砍中了右脚,最后伤重而亡。吴王死后,他的儿子夫差继位。三年以后,夫差带兵前去攻

    生活 2021年10月29日
  • netty组件化设计(net有类似netty的框架吗)

    技术基于NIO的网络编程框架Netty有哪些组件本篇内容介绍了“基于NIO的网络编程框架Netty有哪些组件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧

    攻略 2021年12月21日
  • 怎么使用Python开发设备程序

    技术怎么使用Python开发设备程序这篇文章主要讲解了“怎么使用Python开发设备程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python开发设备程序”吧

    攻略 2021年10月23日
  • 如何用php删除本地文件

    技术如何用php删除本地文件这篇文章主要介绍“如何用php删除本地文件”,在日常操作中,相信很多人在如何用php删除本地文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用php删除本

    攻略 2021年10月29日
  • 一筹莫展什么意思,一筹莫展的筹是什么意思

    技术一筹莫展什么意思,一筹莫展的筹是什么意思◎ 一筹莫展 yīchóu-mòzhǎn筹:计策。展:施展。一点计策也想不出;一点儿办法也没有《宋史·蔡幼学传》:“多士盈庭而一筹不吐。”后以“一筹莫展”比喻一点办法也没有。

    生活 2021年10月29日
  • 12项目全站HTTPS

    技术12项目全站HTTPS 12项目全站HTTPS项目全站HTTPS
    1.配置web端博客配置文件
    [root@web01 ~]# vim /etc/nginx/conf.d/linux.wp.com.

    礼包 2021年11月7日