首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS ?. ??

.) ---- 可选链操作符 允许读取位于连接对象链深处属性值,而不必明确验证链每个引用是否有效 ?. 可选链操作符功能类似于 ....链式操作符,不同之处在于引用为空情况下不会引起错误,该表达式短路返回值 下面代码运行有错误,原因很简单, user.age 值是 undefined,从 undefined 读取 num 属性当然会报错...---- 在实际开发,?? 遇到次数也不是太多,但还是非常有必要知道这个东西用法 空值合并操作符(??)...也就是说,如果使用 || 来为某些变量设置默认值,可能会遇到意料之外问题,比如遇到假值 ''、0、false 通过以下代码可验证区别,当 user 对象没有 sex 属性时默认值为 2(0 女 1... 可选链操作符 (?.) 配合使用就非常美妙 console.log(user.age?.num ?? 18);

2.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    jscallapply

    一、callapply简介 call() apply() 是预定义函数方法。 两个方法可用于调用函数,两个方法第一个参数必须是对象本身。 两个方法都使用了对象本身作为第一个参数。...两者区别在于第二个参数: apply传入是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call参数传入(从第二个参数开始)。...在 JavaScript 严格模式(strict mode)下, 在调用函数时第一个参数会成为 this 值, 即使该参数不是一个对象。...二、callapply相同点不同点 1. 区别 call传递参数是序列1,2,3,4 apply传递参数是集合型[1,2,3,4] 2....相同点 callapply是替换前面函数内部this指针以及传递参数。 功能:可以自动执行前面的函数 都有两个参数:a. 替换对象 b.

    1.6K30

    js防抖节流

    一、目的:防止函数被无意义高频调用 二、理解: 1、防抖(debounce) 本质:函数在特定时间内不再被调用后执行 原理:设置一个定时器,如果在设定时间间隔内事件再次触发,就会清除上一次定时器并重新设置计时...,直到指定时间间隔内没有再次触发,才会执行函数 缺点:如果事件在规定时间间隔内被不断触发,则调用方法会被不断延迟 使用场景:文本框输入搜索(连续输入时避免多次请求接口) 个人通俗理解:事件连续触发...原理:用时间戳来判断是否已到回调该执行时间,记录上次执行时间戳,然后每次触发 scroll 事件执行回调,回调判断当前时间戳距离上次执行时间戳间隔是否已经到达 规定时间段,如果是,则执行,并更新上次执行时间戳...这样场景,就适合用节流技术来实现。...本文参考自:https://segmentfault.com/a/1190000018428170https://www.jianshu.com/p/3d3f62b9d0adhttps://blog.csdn.net

    1.4K20

    JS变量类型计算

    题目 1.JS使用typeof能得到哪些类型 2.=== == 选择 3.JS中有哪些内置函数 4.JS变量按存储方式分为哪些类型,并描述其特点 5.如何理解JSON 值类型引用类型 值类型(...把a赋值给b在内存是又给b开辟了一块新空间,存储了同样值。...引用类型分两块存储,先在堆存储一个实际值,再在栈存储一个堆中值引用地址,指向堆对象。...把a赋值给b是在栈重新开辟一块空间存储还是相同对象引用地址,ab存储地址相同,指向对象也相同。当对象值发生改变时,两者会同时改变。...:Math,JSON JS变量按存储方式分为哪些类型,并描述其特点 值类型何引用类型 如何理解JSON JSON是JS一个内置对象 区别 JS对象 {x:10} JSON对象 {'x':10} JSON

    4.1K10

    js原型原型链

    ​一、原型 1、prototypeconstructor 在js每个函数(非箭头函数,一般关于原型有关知识我们都只考虑构造函数)都会拥有一个 prototype 属性,该属性值是一个对象...创建原型主要目的是为了对象实例共享属性方法。...p 继承了 Person 原型对象上方法属性、如果在创建一个 实例对象同样可以继承该构造函数原型上属性方法,实现了数据共享。...原型链查找机制:实例对象上找不到指定属性,就从该原型对象上找,如果还是找不到就到该原型对象上原型上去找,。...注意点:通过现代浏览器操作属性便利性,可以改变一个对象 [[Prototype]] 属性,这种行为在每一个 JavaScript 引擎浏览器中都是一个非常慢且影响性能操作,使用这种方式来改变继承属性是对性能影响非常严重

    1.1K00

    jscallapply区别

    调用函数时, callapply传递参数方式不同 以名为showHide函数为例: function showHide(name1, name2){ if(this.parentNode.parentNode.querySelector...身为VRMMORPG(虚拟大规模线上角色扮演游戏)《刀剑神域〈SAO〉》其中一名玩家:桐人和其他一万个玩家才刚登入享受此游戏之时,游戏中管理员对大家宣布了一个令人惊恐消息── 那就是,现在唯一要登出此游戏方法只有将这个游戏破关...,并且在这个游戏中GAME OVER的话,也就代表了现实世界“死亡”。.../image/jinshu.jpg"> 故事讲述是从东京都西部被分割出来这座都市,“超能力开发”被列为学校课程一部分...某一个暑假日子,在家里阳台上,他遇见了一位修女;这位少女自称自己名字叫“茵蒂克丝”,并是从魔法世界逃了出来,现在正在被魔法师追赶

    1.8K30

    JS原型原型链

    prototype对象属性所有属性方法都会被构造函数实例继承。这意味着我们可以把那些公用属性方法,直接定义在prototype对象属性上。...prototype就是调用构造函数所创建实例对象原型(proto)。js在创建对象时候,都有一个叫做proto属性,用于指向它函数对象原型对象prototype。...prototype可以让所有的对象实例共享它包含属性方法。 原型链 每一个对象都可以有一个原型,这可原型还可以有它自己原型,以此类推,就形成了原型链。...查找一个对象属性或方法时候,如果这个对象没有这个属性或者方法,那就会在这个对象原型对象中去找,以此类推,直到原型链结束。..._proto_ _proto_是原型链查询实际用到,指向构造函数原型对象,他是对象独有的。对象._proto_ = 构造函数.prototype。 在js,万物皆是对象,函数也是对象。

    1.5K10
    领券