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 字符串转化成数字的代码
Jun 29 Javascript
非主流的textarea自增长实现js代码
Dec 20 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
Jan 08 Javascript
javascript使用onclick事件改变选中行的颜色
Dec 30 Javascript
javascript事件冒泡和事件捕获详解
May 26 Javascript
.NET微信公众号开发之创建自定义菜单
Jul 16 Javascript
js获取隐藏元素宽高的实现方法
May 19 Javascript
javascript深拷贝(deepClone)详解
Aug 24 Javascript
ECMAScript6 新特性范例大全
Mar 24 Javascript
如何解决webpack-dev-server代理常切换问题
Jan 09 Javascript
JavaScript常用8种数组去重代码实例
Sep 09 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
Nov 30 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
一个查看session内容的函数
2006/10/09 PHP
php $_ENV为空的原因分析
2009/06/01 PHP
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
python解析xml模块封装代码
2014/02/07 Python
python检测远程服务器tcp端口的方法
2015/03/14 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
艺术系应届生的自我评价
2013/10/19 职场文书
学期自我鉴定
2013/11/04 职场文书
班风学风建设方案
2014/05/06 职场文书