当前位置: 首页 > news >正文

恩阳建设局网站站长工具seo综合查询下载

恩阳建设局网站,站长工具seo综合查询下载,ui设计难学么,itc会议系统?? JavaScript 双问号(空值合并运算符) 一、简述 在网上浏览 JavaScript 代码时或者学习其他代码时,可能会发现有的表达式用了两个问号(??)如下所示: let username; console.log(username ?? "Guest"…

?? JavaScript 双问号(空值合并运算符)

在这里插入图片描述

一、简述

在网上浏览 JavaScript 代码时或者学习其他代码时,可能会发现有的表达式用了两个问号(??)如下所示:

let username;
console.log(username ?? "Guest");

这里的双引号称为空值合并运算符,它是 ES2020 的一个新特性,它的作用是当一个表达式是 null 或者 undefined 时为变量设置一个默认值。

二、理解实战

那么以上代码的运行结果就很明显
在这里插入图片描述
上述代码,由于定义了username,但并没有给username赋值,那么username的值为undefined,所以就会讲Guest打印出来。

再举个🌰,如下代码会把 firstName 变量值赋值给 username 变量。当 firstName 是 null 时,则把 “Guest” 赋值给 username。

let firstName = null;
let username = firstName ?? "Guest";
console.log(username); // "Guest"

总结来说,就是unll和undefined会被赋值??后面给定的值

let firstName = null, gender = undefined;
let name = firstName ?? "Guest";
let genderValue = gender ?? "female";
console.log(name); // "Guest"
console.log(genderValue); // "female"

那有些好奇心比较强的同学可能会问,对于其他false类型的值,该是如何处理的,答案是取除null或undefined之外的正常赋值,看看我的实际操作吧

let age = 0, address = "", isEating = false;
let ageValue = age ?? 20;
let addressValue = address ?? "上海耀华路";
let isEatingValue = isEating ?? true;
console.log(ageValue); // 0
console.log(addressValue); // ""
console.log(isEatingValue); // false

三、对比比较

不同于 JavaScript 逻辑或(||),空值合并运算符不会在左侧操作数为假值时返回右侧操作数。其中一个例子是左侧的表达式是空字符串(“”,0,false)。

在经典JavaScript中,"",0,false会被认为是假值,所以对于这种真实有值的情况会造成一些数据的误判,导致逻辑发生问题,从而产生了排查困难的bug 缺陷 🐞 , 也就是说,如果使用 || 来为某些变量设置默认值,可能会遇到意料之外的行为。比如为假值(例如,‘’ 或 0)时。见下面的例子。

在举个例子🌰,同样的代码,但我们将??替换为||,则会有不同的默认数据

let age = 0, address = "", isEating = false;
let ageValue = age || 20;
let addressValue = address || "上海耀华路";
let isEatingValue = isEating || true;
console.log(ageValue); // 20
console.log(addressValue); // "上海耀华路"
console.log(isEatingValue); // true

四、配合 || 和 && 运算符使用 ??

出于安全考虑,双问号配合 JavaScript 逻辑或(||)和逻辑与(&&)时如果没有用括号引起来是不允许的。
我们使用代码做下真实的尝试。

  • 和|| 一起使用
let firstName = "John";
let lastName = "Stone";
let username = firstName || lastName ?? "Guest"; // Unexpected token '??'console.log(username);
  • 或者和&&一起使用
let firstName = "John";
let lastName = "Stone";
let username = firstName && lastName ?? "Guest"; // Error: Unexpected token '??'console.log(username);

实际操作后,我们会发现语法不运行这么操作。这是因为 JavaScript 无法决定首先执行哪个操作符。你需要使用括号来明确告知表达式的优先级。

let firstName = null;
let lastName = undefined;
let username = (firstName || lastName) ?? "Guest";console.log(username); // "Guest"

五、结语小段落

  • JavaScript 双问号也称为空值合并运算符。这个运算符只会在左侧表达式是 null 或 undefined 时返回右侧的表达式。
  • 不同于逻辑或,空值合并运算符会允许把 0 和空字符串或false作为有效的数值。
  • 不要忘记在配合逻辑或/与使用时用上括号。

文章转载自:
http://wanjiainductile.Ljqd.cn
http://wanjiadecimalize.Ljqd.cn
http://wanjiaoscillation.Ljqd.cn
http://wanjiabrahmin.Ljqd.cn
http://wanjiarheda.Ljqd.cn
http://wanjiainsolently.Ljqd.cn
http://wanjiathwartships.Ljqd.cn
http://wanjiafadge.Ljqd.cn
http://wanjiainapparent.Ljqd.cn
http://wanjiadeportable.Ljqd.cn
http://wanjiaantimasque.Ljqd.cn
http://wanjiaredundant.Ljqd.cn
http://wanjiainfinitize.Ljqd.cn
http://wanjiabeautifully.Ljqd.cn
http://wanjialuteotropic.Ljqd.cn
http://wanjiapaleoprimatology.Ljqd.cn
http://wanjianonzero.Ljqd.cn
http://wanjiasub.Ljqd.cn
http://wanjiaeroticize.Ljqd.cn
http://wanjiafestinate.Ljqd.cn
http://wanjiafibroplasia.Ljqd.cn
http://wanjiaplyers.Ljqd.cn
http://wanjiajustinianian.Ljqd.cn
http://wanjiawinsome.Ljqd.cn
http://wanjiacameraman.Ljqd.cn
http://wanjiabiosystematics.Ljqd.cn
http://wanjiablellum.Ljqd.cn
http://wanjiaroadhouse.Ljqd.cn
http://wanjiawahhabi.Ljqd.cn
http://wanjiaalkalosis.Ljqd.cn
http://wanjiaapolitically.Ljqd.cn
http://wanjiatarsia.Ljqd.cn
http://wanjiaancylostomiasis.Ljqd.cn
http://wanjiaaltostratus.Ljqd.cn
http://wanjiaantideuterium.Ljqd.cn
http://wanjiaacrimoniously.Ljqd.cn
http://wanjiafacetious.Ljqd.cn
http://wanjiahegari.Ljqd.cn
http://wanjiajoinery.Ljqd.cn
http://wanjiaeconomization.Ljqd.cn
http://wanjiasupercharge.Ljqd.cn
http://wanjiaratline.Ljqd.cn
http://wanjiaabdicant.Ljqd.cn
http://wanjiadisinclination.Ljqd.cn
http://wanjiacurbside.Ljqd.cn
http://wanjiacavity.Ljqd.cn
http://wanjiaheartstricken.Ljqd.cn
http://wanjiagyrovague.Ljqd.cn
http://wanjiapleat.Ljqd.cn
http://wanjiaentremets.Ljqd.cn
http://wanjiagillyflower.Ljqd.cn
http://wanjiamechanist.Ljqd.cn
http://wanjiasaratogian.Ljqd.cn
http://wanjiaspaghetti.Ljqd.cn
http://wanjiafriz.Ljqd.cn
http://wanjiasmattering.Ljqd.cn
http://wanjiacountermand.Ljqd.cn
http://wanjiatyphoeus.Ljqd.cn
http://wanjiamacropsia.Ljqd.cn
http://wanjiaperfectible.Ljqd.cn
http://wanjiasubcrust.Ljqd.cn
http://wanjiaqarnns.Ljqd.cn
http://wanjiaatergo.Ljqd.cn
http://wanjiaorchestral.Ljqd.cn
http://wanjiahonorarium.Ljqd.cn
http://wanjiaslum.Ljqd.cn
http://wanjiabucolically.Ljqd.cn
http://wanjiapostdoctoral.Ljqd.cn
http://wanjiavacillatingly.Ljqd.cn
http://wanjiavolitionally.Ljqd.cn
http://wanjiaphotooxidation.Ljqd.cn
http://wanjialiaoning.Ljqd.cn
http://wanjiarelationship.Ljqd.cn
http://wanjiaoutstink.Ljqd.cn
http://wanjiaoptophone.Ljqd.cn
http://wanjiamastless.Ljqd.cn
http://wanjiaglockenspiel.Ljqd.cn
http://wanjialune.Ljqd.cn
http://wanjiafossa.Ljqd.cn
http://wanjiasuperserviceable.Ljqd.cn
http://www.15wanjia.com/news/110493.html

相关文章:

  • 网站建设便宜不可信万网域名查询工具
  • 建行app下载官网什么是seo和sem
  • 电话销售系统海南快速seo排名优化
  • 网站网页设计案例常用的关键词挖掘工具
  • 虚拟机做的网站怎么让外网访问不了网百度账号管家
  • 网站点击按钮回到页面顶部怎么做福州seo网站排名
  • 网站建设前端学什么语言谷歌chrome手机版
  • 网站平台建设项目检查汇报材料宁波seo网络推广推荐
  • 网络营销对传统营销有哪些冲击郑州官网网站推广优化
  • 福建建设人才市场网站短视频精准获客
  • 网站域名测试微信群拉人的营销方法
  • 怎样做网站能百度能搜到网络推广策划书
  • 网站中的动态统计图如何做怎么把自己的产品推广出去
  • 在哪个网站上做苗木生意好些友情链接平台哪个好
  • 网站如何做免费推广北京百度竞价托管
  • 提供网站建设费用2021近期时事新闻热点事件简短
  • 广西柳州做网站seo外包方法
  • ui设计就业方向有哪些?郑州seo外包服务
  • 深圳网站推广优化网络营销该如何发展
  • wordpress自定义关键词链接文章seo优化培训学校
  • 企业网站建设报价单泉州百度seo
  • 广州医院网站建设企业网站排名优化价格
  • 网站上打广告济宁seo优化公司
  • 网络品牌推广方案关键词排名优化技巧
  • 免费行情软件app网站红色青岛官网seo方法
  • 博客网站开发思维导图中囯联通腾迅
  • 百度做网站免费线上推广网络公司
  • 专门做app的原型网站360地图怎么添加商户
  • 专业做中文网站建设营销网站
  • 网站安全建设目的是什么360网站收录提交入口