今日刷题(2022-4-22) - js的call,apply为null,undefined的情况和日期的注意点

76 篇文章 2 订阅
26 篇文章 2 订阅

题目1

function a(){
  console.log(this);
} 
a.call(null);//输出结果为?
  • 答案
    • window
  • 解析
    • call,apply用于改变this的指向,并且可以让任意函数成为某一对象的方法进行调用
    • 特别的是

题目2

var d = new Date('2018-05-09'),可以设置为6月份的操作是?()(多选)
A:  d.setMonth(7);
B:  d.setMonth(6);
C:  d.setMonth(5);
D:  d.setDate(40);
  • 答案

    • C与D
  • 解析

    • C : js当中的月份是从0开始算的,0代表1月,11代表12月,所以设置的时候需要减少1,所以d.setMonth(5)为设置6月份

    • D : 看看菜鸟教程当中的setDate(day)解释

      参数描述
      day必需。
      表示一个月中的一天的一个数值(1 ~ 31
      0 为上一个月的最后一天
      -1 为上一个月最后一天之前的一天
      如果当月有 31 天
      32 为下个月的第一天
      如果当月有 30 天
      32 为下一个月的第二天
//五月有31天,所以只需要大于31就是设置下一个月了(其实设置大于31的数字都可以设置到下一个月,只不过下一个是记号的区别而已~)
var time = new Date("2018-05-09");
console.log(`${time.getFullYear()}${time.getMonth()+1}${time.getDate()}`);//2018年5月9日
time.setDate(42);
console.log(`${time.getFullYear()}${time.getMonth()+1}${time.getDate()}`);//2018年6月12日

题目3

//说出A,B,C,D输出结果
A:  console.log(1+ "2"+"2");
B:  console.log(1+ +"2"+"2");
C:  console.log("A"- "B"+"2");
D:  console.log("A"- "B"+2);
  • 答案

    • 122 => ( 如果typeof (1+ “2”+“2”) 那么输出结果为"string" )
    • 32 => ( 如果typeof (1+ +“2”+“2”) 那么输出结果为"string" )
    • NaN2
    • NaN
  • 解析

    • A : 做加法时要注意双引号,当使用双引号时,JavaScript认为是字符串,字符串相加等于字符串合并。
      因此,这里相当于字符串的合并,即为122.
    • B : 第一个+"2"中的加号是一元加操作符,+"2"会变成数值2,因此1+ +“2"相当于1+2=3.
      然后和后面的字符串“2”相合并,变成了字符串"32”.
    • C : 第一个+"2"中的加号是一元加操作符,+"2"会变成数值2,因此1+ +“2"相当于1+2=3.
      然后和后面的字符串“2”相合并,变成了字符串"32”.
      • 同样的操作还有 * “1” => 相当于把字符串1转化为数字1
    • “A”-“B"的运算中,需要先把"A"和"B"用Number函数转换为数值,其结果为NaN,在减发操作中,如果有一个是NaN,则结果是NaN,因此"A”-"B"结果为NaN。
      然后和"2"进行字符串合并(这里的+为什么是合并那是因为加数为字符串类型),变成了NaN2.
    • D :“A”-"B"结果为NaN,然后和数值2进行加法操作,在加法操作中,如果有一个操作数是NaN,则结果为NaN。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未成年梦想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值