javascript条件式访问属性和箭头函数介绍


Posted in Javascript onNovember 17, 2021

一、条件式访问属性

?. 是ES2020引入的新特性,是一个条件式属性访问操作符,当你访问值为undefined变量的某个属性值时,如果使用.操作符会直接报错,如果使用条件式属性访问操作符来访问会返回undefined

看例子:

let book = {price:10,
            edition:10,
            name:"javascirpt"
}

console.log(book.page.num)

直接报错:

TypeError: Cannot read property 'num' of undefined

因为book.page 的值 undefinedundefined是没有任何属性值的,所以会报错。

如果你无法确定某个值是undefined还是对象,除了可以用 if 语句来判断之外,还可以直接用条件式访问操作符来访问某个属性, 就算被访问的对象是undefined,也不会报错。而是返回 undefined

console.log(book.page?.num)

输出:

undefined

二、箭头函数介绍

箭头函数是ES6中出现的一种定义函数的简写方法, 用=>分隔参数列表和函数体。

例子:

let square = x=>x**2;

console.log(square(3))

输出:

9

这个函数的定义等价于传统函数:

function square(x){
    return x**2
}

箭头函数通常用于把一个未命名函数作为参数传给另一个函数。

let nums = [1,2,3,4].map(x=>x*2)

console.log(nums)

输出:

[ 2, 4, 6, 8 ]

箭头函数让代码看起来更简洁了。

如果使用传统的function关键字来定义函数,看起来就显得有点???/p>

nums = [1,2,3,4].map(function(x){return x*2})

console.log(nums)

箭头函数如果有多个参数,则需要使用括号括起来

const add = (x,y)=>x+y;

console.log(add(1,2))

如果箭头函数的函数体有多条语句,则要将函数体用大括号括起来,并用return关键字返回值

const add = (x,y)=>{let tmp=x+y;return tmp};

console.log(add(1,2))

这时候箭头函数的函数体和普通的function定义的函数体格式就完全一样了。所以箭头函数在简单的单行语句中才显得简洁,并具有可读性。一旦函数体过于复杂,再用箭头函数来定义可读性就没那么好了。

到此这篇关于javascript条件式访问属性和箭头函数介绍的文章就介绍到这了,更多相关javascript条件式访问属性和箭头函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jQuery.autocomplete 支持中文输入(firefox)修正方法
Mar 10 Javascript
javascript 循环调用示例介绍
Nov 20 Javascript
jQuery动画特效实例教程
Aug 29 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
Nov 17 Javascript
用js实现放大镜的效果的简单实例
May 23 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 jQuery
VSCode 配置React Native开发环境的方法
Dec 27 Javascript
JS中的回调函数实例浅析
Mar 21 Javascript
js实现鼠标单击Tab表单切换效果
May 16 Javascript
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
May 09 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
Nov 26 Javascript
详解ES6中class的实现原理
Oct 03 Javascript
JavaScript 对象创建的3种方法
Nov 17 #Javascript
JavaScript 中for/of,for/in 的详细介绍
Nov 17 #Javascript
JavaScript高级程序设计之基本引用类型
Nov 17 #Javascript
JavaScript高级程序设计之变量与作用域
javascript对象3个属性特征
详细聊聊浏览器是如何看闭包的
Vue3中的Refs和Ref详情
Nov 11 #Vue.js
You might like
PHP memcache扩展的三种安装方法
2009/04/26 PHP
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
php检测useragent版本示例
2014/03/24 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
用jquery来定位
2007/02/20 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
canvas实现刮刮卡效果
2017/03/14 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
Python教程之全局变量用法
2016/06/27 Python
Python如何实现文本转语音
2016/08/08 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
实例详解Python装饰器与闭包
2019/07/29 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
几个解决兼容IE6\7\8不支持html5标签的几个方法
2013/01/07 HTML / CSS
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
Java面试题及答案
2012/09/08 面试题
C++面试题:关于链表和指针
2013/06/05 面试题
营销专业应届生求职信
2013/11/26 职场文书
消防志愿者活动方案
2014/08/23 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
golang内置函数len的小技巧
2021/07/25 Golang