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 相关文章推荐
Discuz! 6.1_jQuery兼容问题
Sep 23 Javascript
ie支持function.bind()方法实现代码
Dec 27 Javascript
利用进制转换压缩数字函数分享
Jan 02 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
May 04 Javascript
jquery实现标签上移、下移、置顶
Apr 26 Javascript
javasript实现密码的隐藏与显示
May 08 Javascript
jQuery实现图片左右滚动特效
Apr 20 Javascript
js仿微博实现统计字符和本地存储功能
Dec 22 Javascript
基于JS实现textarea中获取动态剩余字数的方法
May 25 Javascript
vue使用vue-cli快速创建工程
Jul 28 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
May 08 Javascript
微信小程序实现左侧滑栏过程解析
Aug 26 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中str_replace函数使用小结
2008/10/11 PHP
php swoft框架实例用法
2020/12/22 PHP
IE6下JS动态设置图片src地址问题
2010/01/08 Javascript
jquery中this的使用说明
2010/09/06 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
js opener的使用详解
2014/01/11 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
js 取消页面可以选中文字的功能方法
2018/01/02 Javascript
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
python获取当前计算机cpu数量的方法
2015/04/18 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
Selenium的使用详解
2018/10/19 Python
python输入多行字符串的方法总结
2019/07/02 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
使用python绘制温度变化雷达图
2019/10/18 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
python中Mako库实例用法
2020/12/31 Python
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
C语言编程题
2015/03/09 面试题
摄影实习自我鉴定
2013/09/20 职场文书
小学教师学期末自我评价
2013/09/25 职场文书
环境建设实施方案
2014/03/14 职场文书
优秀团员事迹材料
2014/12/25 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
Anaconda安装pytorch及配置PyCharm 2021环境
2021/06/04 Python
Apache自带的ab压力测试工具的实现
2022/07/23 Servers
Fluentd搭建日志收集服务
2022/09/23 Servers