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

免费企业网站建设介绍网站制作流程一般制作流程?

免费企业网站建设介绍,网站制作流程一般制作流程?,深圳提供网站建设服务平台,网站设计思路文案范文链式判断运算符 ?. ?.运算符,直接在链式调用的时候判断,左侧的对象是否为null或undefined。如果是的,就不再往下运算,而是返回undefined。 链判断运算符?.有三种写法。 obj?.prop // 对象属性是否存在 obj?.[expr] // 同上…

链式判断运算符 ?.

?.运算符,直接在链式调用的时候判断,左侧的对象是否为null或undefined。如果是的,就不再往下运算,而是返回undefined。

链判断运算符?.有三种写法。

obj?.prop // 对象属性是否存在
obj?.[expr] // 同上
func?.(…args) // 函数或对象方法是否存在
下面是obj?.[expr]用法的一个例子。

let hex = "#C0FFEE".match(/#([A-Z]+)/i)?.[1];

上面例子中,字符串的match()方法,如果没有发现匹配会返回null,如果发现匹配会返回一个数组,?.运算符起到了判断作用。

下面是?.运算符常见形式,以及不使用该运算符时的等价形式。
a?.b
// 等同于
a == null ? undefined : a.ba?.[x]
// 等同于
a == null ? undefined : a[x]a?.b()
// 等同于
a == null ? undefined : a.b()a?.()
// 等同于
a == null ? undefined : a()

Null 判断运算符 ??

读取对象属性的时候,如果某个属性的值是null或undefined,有时候需要为它们指定默认值。常见做法是通过||运算符指定默认值。

第一种弊端 所有的false都会取默认值
const headerText = response.settings.headerText || 'Hello, world!';
const animationDuration = response.settings.animationDuration || 300;
const showSplashScreen = response.settings.showSplashScreen || true;

上面的三行代码都通过||运算符指定默认值,但是这样写是错的。开发者的原意是,只要属性的值为null或undefined,默认值就会生效,但是属性的值如果为空字符串或false或0,默认值也会生效。

只有为null or undefined才会取默认值
const headerText = response.settings.headerText ?? 'Hello, world!';
const animationDuration = response.settings.animationDuration ?? 300;
const showSplashScreen = response.settings.showSplashScreen ?? true;

上面代码中,默认值只有在左侧属性值为null或undefined时,才会生效。


这个运算符的一个目的,就是跟链判断运算符?.配合使用,为null或undefined的值设置默认值。

const animationDuration = response.settings?.animationDuration ?? 300;

上面代码中,如果response.settings是null或undefined,或者response.settings.animationDuration是null或undefined,就会返回默认值300。也就是说,这一行代码包括了两级属性的判断。

??本质上是逻辑运算,它与其他两个逻辑运算符&&和||有一个优先级问题,它们之间的优先级到底孰高孰低。优先级的不同,往往会导致逻辑运算的结果不同。

现在的规则是,如果多个逻辑运算符一起使用,必须用括号表明优先级,否则会报错。

(lhs && middle) ?? rhs;
lhs && (middle ?? rhs);(lhs ?? middle) && rhs;
lhs ?? (middle && rhs);(lhs || middle) ?? rhs;
lhs || (middle ?? rhs);(lhs ?? middle) || rhs;
lhs ?? (middle || rhs);

逻辑赋值运算符 ||=、&&=、??=

// 或赋值运算符
x ||= y
// 等同于
x || (x = y)// 与赋值运算符
x &&= y
// 等同于
x && (x = y)// Null 赋值运算符
x ??= y
// 等同于
x ?? (x = y)
// 老的写法
user.id = user.id || 1;// 新的写法
user.id ||= 1;
http://www.yayakq.cn/news/266198/

相关文章:

  • 网站开发制作学徒个人怎么注册网站
  • 做网站需要多少网站屏幕自适应代码
  • 网站上图片的链接怎么做自己如何开网站
  • 社区网站建设方案现货电子交易平台
  • 安平网站建设培训想自学设计从哪里开始
  • 搜狐一开始把网站当做什么来做wordpress链接添加媒体库
  • 太原网站建设网格未来宁波做网站皆选蓉胜网络
  • 做彩票游戏网站违法吗做设计最好的参考网站
  • 网站建设项目可行性爱眼护眼ppt模板免费下载 素材
  • 做一个网站要什么样技术1020美金等于多少欧元
  • 网站总体策划的内容有哪些专业的网站公司到哪里找
  • 商场网站开发教程优秀的手机网站设计
  • 云服务器网站建设网站一般有哪些模块
  • 深圳市公司网站建设平台网站设计论文的题目
  • 网站流量攻击wordpress文章显示404
  • 做外汇看什么网站做多媒体挣钱吗
  • 济南市做网站公司用织梦模板做网站
  • html5门户网站模板wordpress开启目录
  • 电热设备网站建设建设网站费用多少钱
  • 建设银行网站下载中心akina wordpress
  • 彩票app开发制作多少钱seo的中文含义是什么意思
  • 成都科技网站建设热大庆信息网
  • 怎么自己创建一个网站手机职业生涯规划大赛怎么准备
  • 网站设计多少钱跨境电商一件代发货源平台
  • 设计软件ai辽阳网站seo
  • IT男做网站无限白嫖国外云服务器
  • 网站建设资料填写免费seo推广软件
  • 江苏省城乡和住房建设厅网站需要注册的企业网站
  • 电脑路由器做网站服务器吗百度推广竞价排名技巧
  • 桂林网站建设公司莱芜金点子招聘信息电子版