首页 > 其他分享 >前端面试题每日3题——2022-09-04

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

时间:2022-09-04 15:22:47浏览次数:57  
标签:面试题 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
From: https://www.cnblogs.com/bidong/p/16655168.html

相关文章

  • redis面试题
    1、redis和mwmcached的区别2、缓存数据的处理流程是怎样的3、为什么要用redis/为什么要用缓存4、Redis常见数据结构以及使用场景5、Redis单线程模型详解6、Redis没有......
  • Ubuntu 18.04替换默认软件源
    安装Ubuntu18.04后,默认源在国外,可以替换为国内的源以提升访问速度参考https://mirrors.ustc.edu.cn/repogen/sudovi/etc/apt/sources.list,写入以下内容debhttps://m......
  • AGC009E口胡
    赛时应该口胡了个大概,可惜没有转化成更纯粹的问题。问题可以看做有多少不同的\(x\)满足\(x=\sum_{i=1}^{m}(\frac{1}{k})^{a_i},1-x=\sum_{i=1}^{n}(\frac{1}{k})^{b_i......
  • golang面试题2
    1、go方法值接收者和指针接收者结论:如果方法的接收者是指针类型,无论调用者是对象还是对象指针,修改的都是对象本身,会影响调用者      如果方法的接收者是值类......
  • 2022 年 Javascript 面试题
    2022年Javascript面试题这是我在前端面试中遇到的第二组javascript问题。可以通过这个帖子找到上一组javascript的问题[面试题2022基础javascript从一家公司转到......
  • 404.sum-of-left-leaves 左叶子之和
    注意判断左叶子的条件classSolution{private:intget_sum(TreeNode*root,intsum){if(root->left!=nullptr&&root->left->left==nullptr&&......
  • 并发学习记录09:共享模型之内存
    Java内存模型JMM指的是Javamemorymodel,它定义了主存,工作内存等抽象概念,相当于做一个隔离层,将底层CPU寄存器,缓存,硬件内存,CPU指令优化提供的功能通过一个简单接口给使用......
  • 2022-2023-1 20221404 《计算机基础与程序设计》第一周学习总结
    作业信息班级https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求https://www.cnblogs.com/rocedu/p/9577842.html#WEEK01作业目标:快速浏览教材作业正文:ht......
  • NC19885 [AHOI2009]CHESS 中国象棋
    题目链接题目题目描述在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧.一个......
  • 2022-09-03 维加斯隧道交易法
    1.第一步应该是ema55和ema144.169都是一个趋势的,比如ema55在144之上,但是具体是几分钟的级别,你需要再去寻找2.第二步就是找到几分钟的级别,这里你就看第一个绿色箭头,这第......