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年11月2日
  • 自己吊顶方法图解,塑料扣板吊顶怎么安装图解

    技术自己吊顶方法图解,塑料扣板吊顶怎么安装图解1、确定吊顶安装位置在安装之前,我们需要先明确它的安装位置以及安装高度,这样在安装时才不会手忙脚乱,才能提高安装效率自己吊顶方法图解。 当我们确定好安装高度后,需要用墨线在四

    生活 2021年10月27日
  • 12. 整数转罗马数字

    技术12. 整数转罗马数字 12. 整数转罗马数字罗马数字包含以下七种字符:I,V,X,L,C,D和M。
    字符 数值
    I 1
    V 5
    X

    礼包 2021年12月2日
  • 面试题你对kafka了解到什么程度(kafka面试知识点深度剖析)

    技术大数据kafka常见面试题有哪些本篇内容主要讲解“大数据kafka常见面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“大数据kafka常见面试题有哪些”吧!1、

    攻略 2021年12月23日
  • Java学习笔记六:Java最基础

    技术Java学习笔记六:Java最基础 Java学习笔记六:Java最基础1. 标志符
    命名注意:只可以字母(A-Z或a-z)、美元符($)、下划线(_)开始;
    首字符之后可以是字母、美元符、下划线或数

    礼包 2021年10月19日
  • leetode24两两交换链表中的节点

    技术leetode24两两交换链表中的节点 leetode24_两两交换链表中的节点一、题目二、算法分析
    我主要想着通过while循环自己交换,前面两个单独考虑,后面的都是一样的处理。
    因为前面的两个需

    礼包 2021年11月9日