es6笔试题

const emojis = ["1", "2", "3", "4"];
        // 1
        emojis.push("5"); // push()方法返回的是数组的新长度
        console.log(emojis) // [1,2,3,4,5]

        // 2
        emojis.splice(0, 2); // splice()截取0-2位数组,返回的是截取出来的[1,2]
        
        console.log(emojis) // emojis为剩下的数组 [3,4,5]
        // 3  
        emojis = [...emojis, "6"]; // 会报错
        console.log(emojis)
        /*
        const确实定义的内容不可重复声明或更改,但是这是有前提的:
        前提是这个数据是【简单数据类型】 假设我们给【复杂数据类型】使用const,
        比如const kb = {},我给对象使用const的时候,是【可以改变】对象的属性的 为什么呢?
        因为复杂数据类型储存的是一个【指针】,改变对象的属性并不会影响这个指针,
        所以const不会报错,因此更改指针所指向的数据,不属于const“管辖”的范畴,
        是可以更改的 只要不对const的“底线”,也就是当前定义的变量内容进行更改,就不会报错
        */
        // 4
        emojis.length = 0;  
        console.log(emojis)  // [] 变为空数组

const randomValue = 21;
 
function getInfo() {
 console.log(typeof randomValue);
 const randomValue = "Lydia Hallie";
}
 
getInfo();

// 报错 暂时性死区

const myFunc = ({ x, y, z }) => {
 console.log(x, y, z);
};
 
myFunc(1, 2, 3);

答案: undefined undefined undefined


题考的是es6解构赋值里面的对象解构赋值,对象解构赋值能否赋值成功最重要的一点就是,两边要有同名属于。比如:let {name,age}={name:1},这里name就能取到值,而age没有对应的同名属性,导致取不到值,最后age就会等于undefined。同理上面这题相当于:let {x,y,z}=1,这里的x、y、z都没找到同名的属性所以就取不到值最后都等于undefined
function sumValues(x, y, z) {
 return x + y + z;
}
A: sumValues([...1, 2, 3])
B: sumValues([...[1, 2, 3]])
C: sumValues(...[1, 2, 3])
D: sumValues([1, 2, 3])
答案: C

解构赋值运算符的使用

const person = {
  name: "Lydia",
  age: 21
}
 
const changeAge = (x = { ...person }) => x.age += 1
const changeAgeAndName = (x = { ...person }) => {
  x.age += 1
  x.name = "Sarah"
}
 
changeAge(person)
changeAgeAndName()
 
console.log(person)
A: {name: "Sarah", age: 22}
B: {name: "Sarah", age: 23}
C: {name: "Lydia", age: 22}
D: {name: "Lydia", age: 23}
答案:C

changeAge(person)方法会改变入参的值,changeAgeAndName()方法没有入参,
就会进行解构赋值,解构赋值不会改变原有的对象,但是操作的都是person对象

const name = "Lydia";
age = 21;
 
console.log(delete name);
console.log(delete age);
A: false, true
B: "Lydia", 21
C: true, true
D: undefined, undefined
答案:A

使用了 const ,它会标记为不可配置, let 或var 也是不可配置的,不可删除。

9.

function sayHi() {
  console.log(name)
  console.log(age)
  var name = 'Lydia'
  let age = 21
}
 
sayHi()
答案: undefined 和 报错

var 变量提升,let创建提升,但是不可访问,暂时性死区

const randomValue = 21;
 
function getInfo() {
 console.log(typeof randomValue);
 const randomValue = "Lydia Hallie";
}
 
getInfo();
A: "number"
B: "string"
C: undefined
D: ReferenceError
答案: D

const定义变量,暂时性死区

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值