牛客网错题集 2020/10/27 - Kaiqisan

以下哪些语句触发了隐式的类型转换?

  • parseInt(12.34, 10)
    
  • 0 ? 1 : 2
    
  • 2e1 * 0xaa
    
  • 1 + '1'
    

正确答案: A B D 你的答案: C D (错误)

A. parseInt就是先把数字先转字符串,取消小数点之后的数值之后再返回变成数字类型

B. 三元运算符,会判断 ? 前的表达式为true或者false。这里把0转化为false了

D. 不用说都知道

至于C选项中的e表示科学计数法这里的意思是
2 ∗ 1 0 1 2 * 10 ^ 1 2101


以下js表达式返回false的是()

  • 1==true
    
  • “”==false
    
  • false==null
    
  • null==undefined
    

正确答案: C 你的答案: D (错误)

死记硬背就完事了

类似于 false == ‘false’ 结果还是false

(function() {
      var a = b = 5;
  })();   
console.log(b);
console.log(a);

上面的输出结果:

  • 5,5
    
  • undefined,undefined
    
  • 5,undefined
    
  • 5,Uncaught ReferenceError: a is not defined
    

    正确答案: D 你的答案: A (错误)

    var a=b=5 相当于 var a=b; b=5 然后b为全局变量,所以可以被外层方法获取,但a是局部变量无法被外层方法获取。


有var d = new Date(‘2018-05-09’),可以设置为6月份的操作是?()

  • d.setMonth(7);
    
  • d.setMonth(6);
    
  • d.setMonth(5);
    
  • d.setDate(40);
    

正确答案: C D 你的答案: B D (错误)

setMonth方法 0—11对应 1—12月

setDate方法如果超过当月日期的话会跑到下一个月,0 为上一个月的最后一天, -1 为上一个月最后一天之前的一天

以下代码执行后,console 的输出是?

let x = 10;
let foo = () => {
	console.log(x);
	let x = 20;
	x++;
}
foo();
  • 抛出 ReferenceError
    
  • 10
    
  • 20
    
  • 21
    

正确答案: A 你的答案: B (错误)

let不会变量提升,在这里,如果没有let x = 20;,或者把console.log(x);放到let x = 20;下面,都是没有问题的,程序一切正常运行。

在上面例子里面先在外面声明,在函数内输出x再声明,必报错。这其实会导致暂时性死区的问题。

暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。 ----- 官方原话

简单点就是说一个变量在外面定义了,又在里面定义了,在里面这个变量定义之前,是不可以使用它的

let a = 10
{
    // 绝对不可以在这里使用
    let a = 15
    // 可以在这后面使用
}

在浏览器控制台执行以下代码,输入的结果是()

function test() {
    var n = 4399
    
    function add() {
        n++
        console.log(n)
    }
    
    return {n, add}
}

var result = test()
var result2 = test()
result.add()
result.add()
console.log(result.n)
result2.add()
  • 4400 4401 4399 4400
    
  • 4400 4401 4401 4402
    
  • 4400 4400 4399 4400
    
  • 4400 4401 4399 4402
    
  • 4400 4401 4401 4400
    

正确答案: A 你的答案: E (错误)

重点就第三个空进行讲解,外层变量n与add方法内变量n是俩相互分割的,两者之间毫无关系。如果把add方法内的n++ 改成this.n++然后把打印的方法内的n也换成this.n的话,选择E是完全正确的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

kaiqisan

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

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

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

打赏作者

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

抵扣说明:

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

余额充值