Hi FE !
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
  • 输出类

输出类

const obj = {
  a: 0,
};
obj["1"] = 0;
obj[++obj.a] = obj.a++;
const values = Object.values(obj);
obj[values[1]] = obj.a;
console.log(obj);
obj["1"] = 0;

//此时的obj
{
    1: 0,
    a: 0
}

++a 和 a++ 的操作,学过 c 语言的都知道,他们都是对 a 自增 1,不同的是 a++ 返回的是自增前的结果,++a 返回的是自增后的结果

//由于 obj.a 为 0 翻译过来也就是

//这里需要注意的,代码从左往右执行,最后赋值表达式在最后,那时候才是右边结果赋值给左侧
// obj[++a] = a++  也就是,从左往右翻译表达式 obj[1] = 1
obj[++obj.a] = obj.a++;

//此时的obj
{
    1: 1,
    a: 2
}

Object.values 罗列 values 内容,并且按照前面说的按照数字类型升序,其他按照添加顺序排列

const values = Object.values(obj);
//参考上一步结果,下面则可以翻译为 obj[2] = 2
obj[values[1]] = obj.a;

//此时的obj
{
    1: 1,
    2: 2
    a: 2
}

因此最后一行的结果就是

console.log(obj);

//打印结果就是 obj 的对象,按照指定规则排列打印就是它了
//由于数字这里也只能表示字符串,js打印结果还专门标出来引号怕被误解
{ '1': 1, '2': 2, a: 2 }
Edit this page
最近更新: 2025/6/27 02:24
Contributors: qdleader
qdleader
本站总访问量 129823次 | 本站访客数 12人