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 相关文章推荐
项目实践之javascript技巧
Dec 06 Javascript
JavaScript 撑出页面文字换行
Jun 15 Javascript
Prototype String对象 学习
Jul 19 Javascript
JavaScript经典效果集锦
Jul 06 Javascript
jQuery学习基础知识小结
Nov 25 Javascript
为jQuery添加Webkit的触摸的方法分享
Feb 02 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
Sep 05 Javascript
JavaScript生成验证码并实现验证功能
Sep 24 Javascript
js关于getImageData跨域问题的解决方法
Oct 14 Javascript
利用Angular.js编写公共提示模块的方法教程
May 28 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
Aug 24 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
Jul 09 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
详解json在php中的应用
2018/09/30 PHP
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
ionic实现底部分享功能
2017/05/11 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
JS实现的字符串数组去重功能小结
2019/06/17 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
Python的pycurl包用法简介
2015/11/13 Python
python 列表降维的实例讲解
2018/06/28 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
Django中create和save方法的不同
2019/08/13 Python
python实现最大优先队列
2019/08/29 Python
python实现统计代码行数的小工具
2019/09/19 Python
基于python求两个列表的并集.交集.差集
2020/02/10 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
Python 多进程原理及实现
2020/12/21 Python
庆八一活动方案
2014/01/25 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
MySQL Router的安装部署
2021/04/24 MySQL
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js