『每日一题』搬砖之二

公众号上看的每日一题,搬砖来记录下,会把一些重点的评论摘抄下来。

下面输出什么???
1、

let c = { greeting: 'Hey!' }
let d

d = c
c.greeting = 'Hello'
console.log(d.greeting)
  • A: Hello
  • B: undefined
  • C: ReferenceError
  • D: TypeError

2、

let a = 3
let b = new Number(3)
let c = 3

console.log(a == b)
console.log(a === b)
console.log(b === c)
  • A: true false true
  • B: false false true
  • C: true false false
  • D: false true true

3、

class Chameleon {
  static colorChange(newColor) {
    this.newColor = newColor
    return this.newColor
  }

  constructor({ newColor = 'green' } = {}) {
    this.newColor = newColor
  }
}

const freddie = new Chameleon({ newColor: 'purple' })
freddie.colorChange('orange')

  • A: orange
  • B: purple
  • C: green
  • D: TypeError

4、

function bark() {
  console.log('Woof!')
}

bark.animal = 'dog'

  • A: 正常运行!
  • B: SyntaxError. 你不能通过这种方式给函数增加属性。
  • C: undefined
  • D: ReferenceError

5、

function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

const member = new Person("Lydia", "Hallie");
Person.getFullName = function () {
  return `${this.firstName} ${this.lastName}`;
}

console.log(member.getFullName());

  • A: TypeError
  • B: SyntaxError
  • C: Lydia Hallie
  • D: undefined undefined

答案和解答
知识点:浅克隆 和 深克隆
1、A
c只是把地址赋值给了d,d和c共同指向内存中的{ greeting:“Hey!”}
2、D
== 只比较值是否相等;===比较值和类型,必须同时满足
a 和 c =肯定一样,是数字3同时类型是Number.
b是new Number()出来的结果,它的值为3,和a、c相等;它的类型是:Number{3},是Number对象的形式。所以类型上和其他两项不同.
3、D
知识点:ES6中类的静态方法=> static 的使用

静态的就是不会被实例继承的,是属于类自身的,实例继承不了,也调用不了,跟作用域一样。实例成员无法访问静态方法,继承可以。
4、A
函数是对象的子类这样定义相当于是静态属性,函数也是对象,可以添加属性。
5、A
1,从js原型链角度看,getFullName是Person这个function变量的一个属性,而member是new出来的对象,其__proto__属性是Person.prototype。
调用member的getFullName方法,先从member身上找,找不到就去member.__proto__也就是Person.prototype上去找,然而找不到。
2,从java这种面向对象的角度看,getFullName是Person类的静态方法,属类所有,不属于对象,而通过类的对象调用,则无法调用。(java和js不完全一样,java中的对象可以调用静态方法不报错,而js中是完全不能调用,会报错)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值