ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

前端面试题每日3题——2022-09-04

2022-09-04 15:33:55  阅读:157  来源: 互联网

标签:面试题 obj name 04 09 person let console log


每日 3 题

16 以下代码执行后,控制台中的输出内容为?

let a = { n: 1 };
let b = a;
a.x = a = { n: 2 };
console.log(a.x);
console.log(b.x);

17 以下代码执行后,控制台中的输出内容为?

let a = {};
let b = "123";
let c = 123;
a[b] = "b";
a[c] = "c";
console.log(a[b]);

18 以下代码执行后,控制台中的输出内容为?

function user(obj) {
  obj.name = "aaa";
  obj = new Object();
  obj.name = "bbb";
}

let person = new Object();
user(person);
console.log(person.name);

公众号【今天也要写bug】获取更多前端面试题

答案和解析

16

// 答案:undefined { n: 2 }
// 考察赋值运算符

let a = { n: 1 };
let b = a; // b 指向 { n: 1 }

a.x = a = { n: 2 };
// 首先找到 a.x 等待赋值,即对象 { n: 1 } 的属性 x
// 然后计算赋值=右侧表达式:a = { n: 2 },将 a 赋值为一个新对象
// a 赋值为一个新对象不会影响 b
// 赋值表达式本身的值为要赋值的值,所以 a = { n: 2 } 返回 { n: 2 }
// 所以 { n: 1 } 的属性 x 被赋值为 { n: 2 }

console.log(a.x); // a 被赋值为 { n: 2 },没有属性 x,故输出:undefined
console.log(b.x); // b.x 即为 { n: 1 } 的属性 x,故输出:{ n: 2 }

17

// 答案:c
// 考察对象的属性名、键访问
// 对于对象 obj = { a: 1 }
// obj.a 语法被称为“属性访问”
// obj['a'] 语法被称为“键访问”
// 在对象中,属性名永远是字符串
// 如果使用 string 意外的值作为属性名,那么它首先会被转换为字符串
let a = {};
let b = "123";
let c = 123;
a[b] = "b"; // 此时 a => {'123':'b'}
a[c] = "c"; // 此时 a => {'123':'c'}
console.log(a[b]); // 输出 c

18

// 答案:aaa
// 考察引用类型
function user(obj) {
  // obj 指向 person 引用的对象{}
  obj.name = "aaa"; // obj person 引用的对象变为 {name:'aaa'}
  obj = new Object(); // obj 引用新对象,对 person 无影响
  obj.name = "bbb"; // obj => {name:'bbb'},对 person 无影响
}

let person = new Object(); // person => {}
user(person);
console.log(person.name); // person => {name:'aaa'}

标签:面试题,obj,name,04,09,person,let,console,log
来源: https://www.cnblogs.com/bidong/p/16655168.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有