问题一:{} 和 [] 的 valueOf 和 toString 的结果是什么?
解析:{} 的 valueOf 结果为 {} ,toString 的结果为 "[object Object]"
[] 的 valueOf 结果为 [] ,toString 的结果为 ""
问题二:如何在 JS 中创建对象?
解析:(1)使用对象字面量:
let obj = {
name:"张三",
}
console.log(obj); // {name: "张三"}
(2)使用构造函数:
let obj = new Object();
obj.name = "张三";
console.log(obj); // {name: "张三"}
(3)使用 Object.create 方法:
let obj = Object.create({
name:"张三",
});
console.log(obj.name); // 张三
问题三:Object.freeze() 和 const 的区别是什么?
解析:const和Object.freeze是两个完全不同的概念。
const 声明一个只读的变量,一旦声明,常量的值就不可改变:
const person = {
name: "Leonardo"
};
let animal = {
species: "snake"
};
person = animal; // ERROR "person" is read-only
Object.freeze适用于值,更具体地说,适用于对象值,它使对象不可变,即不能更改其属性。
let person = {
name: "Leonardo"
};
let animal = {
species: "snake"
};
Object.freeze(person);
person.name = "Lima"; //TypeError: Cannot assign to read only property
'name' of object
console.log(person);
以上就是酷仔今天整理提供的Web前端开发面试题,希望为Web前端同学提供了有用的面试素材,以后酷仔每日均会提供Python及Web相关的习题。