首页 > 其他分享 >【JS错题总结】对象属性相关

【JS错题总结】对象属性相关

时间:2023-06-14 22:24:06浏览次数:43  
标签:obj apple price Object JS 错题 id 属性

下面代码的输出结果:

var obj = {
    brand: 'apple',
    price: 5999
}
Object.defineProperty(obj, 'id', {value: 1})
Object.defineProperty(obj, 'price', {configurable: false})

console.log(Object.keys(obj).length);// 2

// apple  5999
for(var k in obj) {
    console.log(obj[k])
}

obj.price = 4999
delete obj['price']
console.log(obj) // { brand: 'apple', price: 4999 }

 

Object.keys(obj) 返回 obj 对象中自身可枚举属性组成的数组,虽然 obj 对象新增了 id 属性,但该属性是不可枚举的,所以 Object.keys(obj).length 为 2

for...in... 循环可以遍历对象可枚举的属性,id 属性由于不可枚举,因此仍然不会被遍历到

price 属性设置了 configurable: false, 表示该属性不可删除,删改无效,也不可再次修改其属性,但是属性值可以重写

 

标签:obj,apple,price,Object,JS,错题,id,属性
From: https://www.cnblogs.com/zjy4fun/p/17481514.html

相关文章

  • 【JS错题总结】JS中的typeof
    vartest=1.2console.log(typeoftest==='float');//falseconsole.log(typeoftest)//numbervartest2='4399'-0console.log(typeoftest2==='number')//truevarsym=Symbol(1)console.log(typeofsym==='symb......
  • CSS(语义化标签、多媒体标签、新表单元素、属性选择器、结构伪类选择器、伪元素选择器
    一、HTML5新特性概述HTML5的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。这些新特性都有兼容性问题,基本是IE9+以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特性。1语义化标签(★★)以前布局,我们基本用div来做。di......
  • wpf特殊属性:正确理解ContentPresenter(转载)
    原文地址:https://www.cnblogs.com/shawnzxx/p/3346975.html下图显示继承关系:ContentControl:Control(在Control類並沒有Content屬性,所以在這之上再寫了一個ContentControl,使控件有Content屬性可以顯示內容)ContentPresenter:FrameworkElement(ContentPresenter一般用在C......
  • 【JS基础】与或运算
    /***&&运算,如果前面值为true,则结果为后面的值。如果前面值为false,则值为前值.*||运算,如果前面值为true,则结果为前面的值,如果前面的值为false,则结果为后面的值。*/console.log(1&&2);//2console.log(2&&1);//1console.log(1||2);//1console.log(2||1);//2......
  • 【JS基础】JS中的原型和原型链
    在JavaScript中,每个对象都有一个原型(prototype)属性,它指向另一个对象。对象可以继承其原型对象的属性和方法。原型是JavaScript实现对象继承的基础概念之一,而原型链则是一种通过多层级原型连接起来的机制。每个JavaScript对象(除了null和undefined)都有一个原型对象,原型......
  • js中substring
    js中substring主要用于切割字符串,我用的很少,最近再看源码的时候看到了substring,用的也比较少,积累一下例:letstr='abcdefg'str=str.substring(4);console.log(str)//输出'efg'直接截取一个想要的长度,从开头截取,并返回一个被截取之后得的值......
  • 【JS基础】Function构造函数
    Function()构造函数创建了一个新的Function对象,直接调用构造函数可以动态创建函数,与eval(可能访问到本地作用域)不同的是,Function构造函数只创建全局执行的函数。constsum=newFunction('a','b','returna+b')console.log(sum(1,2)); 参考:Function()构造函数-J......
  • uniapp vue.config.js配置chunk-vendors.js文件拆分
    constpath=require('path')functionresolve(dir){returnpath.join(__dirname,dir);}constCompressionPlugin=require('compression-webpack-plugin')consthtmlWebpackPlugin=require('html-webpack-plugin')htmlWebpackPl......
  • 【JS错题总结】作用域链问题
    作用域链上面代码的输出是GoodbyeJack,因为执行到语句typeofname==='undefined' 的时候,函数会从内向外(作用域链)寻找该变量,从语句var name;找到该变量的定义,该变量此时的值为undefined。自执行函数解析和执行一起完成,自己有的不会再向上查找。varname='zhangsan'......
  • 【JS错题总结】node中的微任务
    答案是n1n2p1p2 原因:node中的微任务包含两部分:1.process.nextTick()注册的回调(nextTicktaskqueue)2.promise.then()注册的回调(promise taskqueue) node在执行微任务时,会优先执行nextTicktaskqueue中的任务,执行完之后接着执行promisetaskqueue......