js中对象的属性名和属性值

代码
/**
 * 对象的属性名
 * - 对象的属性名不强制遵循标识符的命名规范,可以是任意的名字,但在开发中
 *   尽量遵循标识符的命名规范
 */
// 创建对象obj1
var obj1 = new Object();
// 添加属性name
obj1.name = "唐僧";
console.log(obj1); // {name: "唐僧"}

/**
 * 如果要使用特殊的属性名,不能采用"."的方式来操作,需要使用另一种
 * 方式:
 *    语法:对象["属性名"] = 属性值
 * 读取时也用这种方式
 * 使用"[]"去操作属性会更加的灵活,在"[]"可以直接传递一个变量,这样
 * 变量值是多少就会读取那个属性
 */
obj1["888"] = 888;
obj1["###"] = '###';
console.log(`obj1["888"] = ${obj1["888"]}, obj1['888'] = ${obj1['888']}, obj1['###'] = ${obj1['###']}`); // obj1["888"] = 888, obj1['888'] = 888, obj1['###'] = ###
var k = '888';
// 将变量k放到[]中,用来读取属性值
console.log(`当k为'888'时, obj1[k] = ${obj1[k]}`); // 当k为'888'时, obj1[k] = 888

/**
 * 对象的属性值
 * - 对象的属性值可以是任意的数据类型,甚至也可以是一个对象
 */
// 创建另一个对象obj2
var obj2 = new Object();
obj2.address = '杭州市余杭区';
obj2.city = '杭州';
// 将对象obj2赋值给对象obj1的属性
obj1.profile = obj2;
// 此时输出对象obj1
console.log(obj1); // {888: 888, name: "唐僧", profile: {address: "杭州市余杭区", city: "杭州"}, ###: "###"}

/**
 * in运算符
 * - 通过该运算符可以检查一个对象中是否存在指定的属性,如果有则返回true,否则返回false
 * 语法:
 *     "属性名" in 对象
 */
// 检查对象obj1中是否存在属性name
if ("name" in obj1) {
    console.log(`对象obj1中存在属性name`); // 对象obj1中存在属性name
} else {
    console.log(`对象obj1中不存在属性name`);
}
// 检查对象obj1中是否存在属性city
if ("city" in obj1) {
    console.log(`对象obj1中存在属性city`);
} else {
    console.log(`对象obj1中不存在属性city`); // 对象obj1中不存在属性city
}

查看源代码

原文地址:https://www.cnblogs.com/goujian/p/11934550.html

时间: 2024-08-08 18:36:37

js中对象的属性名和属性值的相关文章

JS中 对象数组按某一属性去重 校验是否有重复数据

新任务: 下拉框出去重复数据 //前端对象数组 按某个属性去重 其中jsonArray 是你要去重的对象数组 示例中  按name属性去重 //前端对象数组 按某个属性去重 var obj = {}; jsonArray = jsonArray.reduce(function(item,next){ obj[next.name]?'':obj[next.name] = true&&item.push(next); return item; },[]); for(var i= 0;i<

Js中的数据属性和访问器属性

Js中的数据属性和访问器属性 在javaScript中,对象的属性分为两种类型:数据属性和访问器属性. 一.数据属性 1.数据属性:它包含的是一个数据值的位置,在这可以对数据值进行读写. 2.数据属性包含四个特性,分别是: configurable:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或能否把属性修改为访问器属性,默认为true enumerable:表示能否通过for-in循环返回属性 writable:表示能否修改属性的值 value:包含该属性的数据值.默

原生 JS 中对象相关 API 合集

https://juejin.im/entry/58f8a705a0bb9f0065a4cb20 原文链接:https://microzz.com/2017/04/20/jsobject/ 原生 JavaScript 中对象相关 API 合集 - 对象篇.现在 jQuery 已经没有那么有优势了,原生 JS 赶紧学起来... -- 由microzz分享 Microzz [email protected] 主页 文章 标签 GitHub 关于我 掘金专栏 SegmentFault Vue音乐播放器

JS中对象数据类型的基本结构和操作

Object类型 ECMAScript中的队形其实就是一组数据和功能的集合.对象可以通过执行new操作符后跟要创建的对象类型的名称来创建.而创建Object类型的示例并为其添加属性和(或)方法,就可以创建自定义对象. 语法 {[key]:[value], ...} 任何一个对象都是由零到多组键值对(属性名:属性值)组成的(并且属性名不能重复) 创建一个对象的方法: // 方法一 var obj = new Object(); var person = new Object({ name:'Jso

js中对象的浅拷贝和深拷贝的区别

js中对象的浅拷贝和深拷贝的区别 浅度拷贝:复制一层对象的属性,并不包括对象里面的为引用类型的数据,当改变拷贝的对象里面的引用类型时,源对象也会改变. 深度拷贝:重新开辟一个内存空间,需要递归拷贝对象里的引用,直到子属性都为基本类型.两个对象对应两个不同的地址,修改一个对象的属性,不会改变另一个对象的属性. 数据的类型: 一般数据(值传递):字符,数值,布尔,undefined 拷贝(复制)时,传递的是值,修改新数据,不会影响老数据 复杂数据(引用传递):对象 拷贝(复制)时,传递的是内存地址的

AngularJS的ng-repeat显示属性名和属性值

代码下载:https://files.cnblogs.com/files/xiandedanteng/AngularJSAuthorRepeat.rar 代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html ng-app="notesApp"> <

Dom解析xml,只是简单的解析出有效元素的元素名,元素值,属性名和属性值

DOM使用简单,但只适合于一些小的Xml文档,因为Dom解析Xml文档时,要将其读入内存,生成DOM树. 具体操作方法如下 要解析的XML文档 <persons> <person id="1001"> <name><![CDATA[<>上上</>]]></name> <!-- <![CDATA[<>上上</>]]> 预定义字符3. --> <sex&

java 反射机制--根据属性名获取属性值

1.考虑安全访问范围内的属性,没有权限访问到的属性不读取 [java] view plain copy /** * 根据属性名获取属性值 * * @param fieldName * @param object * @return */ private String getFieldValueByFieldName(String fieldName, Object object) { try { Field field = object.getClass().getField(fieldName

[转]JS中对象与字符串的互相转换

原文地址:http://www.cnblogs.com/luminji/p/3617160.html 在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON.parse方法在遇到不可解析的字符串时,会抛出SyntaxError异常. 即:JSON.parse(text, reviver),This method parses a JSON text t

js中对象的复制,浅复制(浅拷贝)和深复制(深拷贝)

在js中,我们经常复制一个对象,复制数据,那么就会有人问了,怎么复制,今天鹏哥就带来js中的复制方法. JS中对象分为基本类型和复合(引用)类型,基本类型存放在栈内存,复合(引用)类型存放在堆内存. 堆内存用于存放由new创建的对象,栈内存存放一些基本类型的变量和对象的引用变量. 至于堆内存和栈内存的区别介绍,你们可以百度看看. 下面开始讲解复制: 这种只是简单的变量,内存小,我们直接复制不会发生引用. var a=123; var b=a; a=123456; alert(a); //1234