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定义变量,暂时性死区