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 相关文章推荐
JS面向对象、prototype、call()、apply()
May 14 Javascript
js 静态动态成员 and 信息的封装和隐藏
May 29 Javascript
浅析js中取绝对值的2种方法
Jul 09 Javascript
jquery和js实现对div的隐藏和显示方法
Sep 26 Javascript
jQuery Ajax中的事件详细介绍
Apr 16 Javascript
jQuery垂直多级导航菜单代码分享
Aug 18 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
Dec 22 Javascript
js代码延迟一定时间后执行一个函数的实例
Feb 15 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
JS中通过url动态获取图片大小的方法小结(两种方法)
Oct 31 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
Sep 02 Javascript
js实现跳一跳小游戏
Jul 31 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
jQuery实现可展开折叠的导航效果示例
2016/09/12 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
react native 文字轮播的实现示例
2018/07/27 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
python解决字典中的值是列表问题的方法
2013/03/04 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
2017/12/14 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
Python with语句用法原理详解
2020/07/03 Python
儿科主治医生个人求职信
2013/09/23 职场文书
毕业自荐书
2013/12/09 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
党员干部廉政承诺书
2015/04/28 职场文书
教师节班会主持词
2015/07/06 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis