面试题

通用面试题 :

++i 和 i++ 性能上的区别 :

说明 :

  • 在内建数据类型的情况下,效率没有区别 .
  • 在自定义数据类型的情况下,++i效率更高 !

分析:

  • ++i 返回对象的引用 .
  • i++ 总是要创建一个临时对象,在退出函数时还要销毁它,而且返回临时对象的值时还会调用其拷贝构造函数 .

这里写图片描述

在 cocos 引擎底层里 , 循环中用到的就是 ++i ;

JavaScript 面试题 :

undefined 与 null 的 相同点 和 不同点 :

  • undefined 和 null 在 if 语句中,都会被自动转为 false
  • “==”报告两者相等 , “===”报告两者不相等 , 说明两者还是有本质区别的
if(!undefined) 
{
    console.log('undefined is false');
}
// undefined is false


if(!null)
{
    console.log('null is false');
} 
// null is false


undefined == null
// true

undefined === null
//false
  • 将 null 和 undenfined 转化成数字时 , null 被转化成了0 , 而 undefined被转化成了NaN ( 非数字型 ) .
Number(null)
// 0

5 + null
// 5
Number(undefined)
// NaN

5 + undefined
// NaN

总结 :

  • null 表示 “没有对象”,即该处不应该有值 .
  • undefined 表示 “缺少值”,就是此处应该有一个值,但是还没有定义 .

undefined 典型用法是:

  • 1. 变量被声明了,但没有赋值时,就等于 undefined
  • 2. 调用函数时,应该提供的参数没有提供,该参数等于 undefined
  • 3. 对象没有赋值的属性,该属性的值为 undefined
  • 4. 函数没有返回值时,默认返回 undefined

null 典型用法是:

  • 1. 作为函数的参数,表示该函数的参数不是对象
  • 2. 作为对象原型链的终点
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值