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的三种$()
Dec 30 Javascript
JS DOM 操作实现代码
Aug 01 Javascript
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
Oct 01 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
Apr 27 Javascript
jquery实现点击页面回到顶部
Nov 23 Javascript
浅谈js函数的多种定义方法与区别
Nov 29 Javascript
基本DOM节点操作
Jan 17 Javascript
Vue插件写、用详解(附demo)
Mar 20 Javascript
jQuery实现字体颜色渐变效果的方法
Mar 29 jQuery
Vue中封装input组件的实例详解
Oct 17 Javascript
jquery+css3实现熊猫tv导航代码分享
Feb 12 jQuery
JavaScript canvas实现流星特效
May 20 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 Class&Object -- 解析PHP实现二叉树
2013/06/25 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
javascript 页面划词搜索JS
2009/09/28 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
python的id()函数解密过程
2012/12/25 Python
python实现的希尔排序算法实例
2015/07/01 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
2017/06/15 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
天游软件面试
2013/11/23 面试题
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
竞聘演讲稿范文
2014/01/12 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
学年个人总结范文
2015/03/05 职场文书
具结保证书范本
2015/05/11 职场文书
2015年初一班主任工作总结
2015/05/13 职场文书