题目1

1
2
3
4
5
Math.round(-2019.5)的结果是
A: 2019
B: -2019
C: 2020
D: -2020
  • 答案

    • B
  • 解析

    • 不多说,了解到的一个技巧,Math.round() 原来的数字加上0.5 然后向下取整就是最终值

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      // 例子
      //2019.49 + 0.5 = 2019.99 向下取整 2019
      x=Math.round(2019.49);

      //2019.5 + 0.5 = 2020.0 向下取整 2020
      x=Math.round(2019.5);

      //-2019.79 + 0.5 = -2019.39 向下取整 2020
      x=Math.round(-2019.79);

      //-2019.51 + 0.5 = -2019.01 向下取整 -2020
      x=Math.round(-2019.51);

题目2

1
2
3
4
5
6
7
8
9
执行以下代码,输出的a值为()
if(! "a" in window){
var a = 1;
}
alert(a);
A: null
B: 1
C: undefined
D: 其他选项均不正确
  • 答案

    • C
  • 解析

    • A in B 用于判断A是否在B的属性上或者是原型链上(官方解释为如果指定的属性在指定的对象或其原型链中,则**in 运算符**返回true。)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      //   "a" 为字符串,会存在变量提升(不可能存在没有类型的一个变量!)

      //判断全局对象window中是否有变量a,如果没有变量a,就进入判断将a赋值为1
      if(! "a" in window){
      // 判断 "a" 是否是在window的属性或者原型链上
      // 如果为true ,那么取反为 false,则不执行if语句
      // 如果为false , 那么取反为true,则执行if语句
      // 由于变量的提前声明特性,在执行这段代码之后,全局对象window中就已经存在a这个变量了,所以不进入if
      var a = 1;
      }
      alert(a);//输出undefined