JavaScript:属性的操作

一、属性的设置和获取

1、属性的设置和获取主要有两种方式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript中属性的基本操作</title>
    <script>
       window.onload=function(){
           // 属性的设置或获取
           var obj={};
           // 通过"."号的方式设置属性
           obj.name="tom";
           //  通过"[]"的方式设置属性
           obj["age"]=20;
           // 通过"."号的方式获取属性
           console.log("姓名:"+obj.name);
           // 通过"[]"的方式获取属性
           console.log("年龄:"+obj["age"]);
       };
    </script>
</head>
<body>

</body>
</html>

运行结果:

2、两种方式的区别

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript中属性的基本操作</title>
    <script>
       window.onload=function(){
           // 属性的设置或获取
           var obj={};
           // 通过"."号的方式设置属性
           obj.name="tom";
           //  通过"[]"的方式设置属性
           obj["age"]=20;
           // 通过"."号的方式获取属性
           console.log("姓名:"+obj.name);
           // 通过"[]"的方式获取属性
           console.log("年龄:"+obj["age"]);

           // 区别
           // "."号只能取本身的属性,"[]"里面可以是变量,也可以是自身的属性
           var obj1={
               name:"jack",
               age:18
           };
           // 定义一个变量
           var a="name";
           console.log(obj2[a]);//等同于 console.log(obj2["name"]);
           // console.log(obj2.a) 错误的写法,.只能取自身的属性
           console.log(obj2.name);
       };
    </script>
</head>
<body>

</body>
</html>

运行结果:

二、属性的删除

看下面的例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript中属性的基本操作</title>
    <script>
       window.onload=function(){
           // 属性的设置或获取
           /* var obj={};
           // 通过"."号的方式设置属性
           obj.name="tom";
           //  通过"[]"的方式设置属性
           obj["age"]=20;
           // 通过"."号的方式获取属性
           console.log("姓名:"+obj.name);
           // 通过"[]"的方式获取属性
           console.log("年龄:"+obj["age"]);

           // 区别
           // "."号只能取本身的属性,"[]"里面可以是变量,也可以是自身的属性
           var obj1={
               name:"jack",
               age:18
           };
           // 定义一个变量
           var a="name";
           console.log(obj2[a]);//等同于 console.log(obj2["name"]);
           // console.log(obj2.a) 错误的写法,.只能取自身的属性
           console.log(obj2.name); */

           // 属性的删除
           var obj2={
               name:"jack",
               age:18,
               sex:"男",
               email:"[email protected]"
           };
           // 通过.删除age属性
           delete obj2.age
           console.log(obj2);
           // 通过[]删除sex属性
           delete obj2["sex"];
           console.log(obj2);
           // 同样也可以通过变量删除
           var temp="email";
           delete obj2[temp];
           console.log(obj2);
       };
    </script>
</head>
<body>

</body>
</html>

运行结果:

三、判断属性是否存在

1、使用in运算符。如果属性存在返回true,属性不存在返回false,看下面的例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript中属性的基本操作</title>
    <script>
       window.onload=function(){
           // 属性的设置或获取
           /* var obj={};
           // 通过"."号的方式设置属性
           obj.name="tom";
           //  通过"[]"的方式设置属性
           obj["age"]=20;
           // 通过"."号的方式获取属性
           console.log("姓名:"+obj.name);
           // 通过"[]"的方式获取属性
           console.log("年龄:"+obj["age"]);

           // 区别
           // "."号只能取本身的属性,"[]"里面可以是变量,也可以是自身的属性
           var obj1={
               name:"jack",
               age:18
           };
           // 定义一个变量
           var a="name";
           console.log(obj2[a]);//等同于 console.log(obj2["name"]);
           // console.log(obj2.a) 错误的写法,.只能取自身的属性
           console.log(obj2.name); */

           // 属性的删除
          /*  var obj2={
               name:"jack",
               age:18,
               sex:"男",
               email:"[email protected]"
           };
           // 通过.删除age属性
           delete obj2.age
           console.log(obj2);
           // 通过[]删除sex属性
           delete obj2["sex"];
           console.log(obj2);
           // 同样也可以通过变量删除
           var temp="email";
           delete obj2[temp];
           console.log(obj2); */

           // 属性的检测
           // in 运算符  判断对象中的属性是否存在
           var obj3={
               name:"jack",
               age:18
           };
           console.log("name" in obj3);
           console.log("sex" in obj3);
       };
    </script>
</head>
<body>

</body>
</html>

运行结果:

2、使用对象的hasOwnProperty()方法

同样,如果属性存在返回true,属性不存在返回false,看下面的例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript中属性的基本操作</title>
    <script>
       window.onload=function(){
           // 属性的设置或获取
           /* var obj={};
           // 通过"."号的方式设置属性
           obj.name="tom";
           //  通过"[]"的方式设置属性
           obj["age"]=20;
           // 通过"."号的方式获取属性
           console.log("姓名:"+obj.name);
           // 通过"[]"的方式获取属性
           console.log("年龄:"+obj["age"]);

           // 区别
           // "."号只能取本身的属性,"[]"里面可以是变量,也可以是自身的属性
           var obj1={
               name:"jack",
               age:18
           };
           // 定义一个变量
           var a="name";
           console.log(obj2[a]);//等同于 console.log(obj2["name"]);
           // console.log(obj2.a) 错误的写法,.只能取自身的属性
           console.log(obj2.name); */

           // 属性的删除
          /*  var obj2={
               name:"jack",
               age:18,
               sex:"男",
               email:"[email protected]"
           };
           // 通过.删除age属性
           delete obj2.age
           console.log(obj2);
           // 通过[]删除sex属性
           delete obj2["sex"];
           console.log(obj2);
           // 同样也可以通过变量删除
           var temp="email";
           delete obj2[temp];
           console.log(obj2); */

           // 属性的检测
           // in 运算符  判断对象中的属性是否存在
         /*   var obj3={
               name:"jack",
               age:18
           };
           console.log("name" in obj3);
           console.log("sex" in obj3); */

           // 使用对象的hasOwnProperty()方法
           var obj4={
               name:"jack",
               age:18
           };
           console.log(obj4.hasOwnProperty("name"));
           console.log(obj4.hasOwnProperty("sex"));
       };
    </script>
</head>
<body>

</body>
</html>

运行结果:

注意:这里也可以使用变量的方式进行判断属性是否存在,例如:

3、使用undefined判断

如果属性的值不等于undefined,则表示属性存在,返回true。如果属性的值等于undefined,则表示属性不存在,返回false。看下面的例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript中属性的基本操作</title>
    <script>
       window.onload=function(){
           // 属性的设置或获取
           /* var obj={};
           // 通过"."号的方式设置属性
           obj.name="tom";
           //  通过"[]"的方式设置属性
           obj["age"]=20;
           // 通过"."号的方式获取属性
           console.log("姓名:"+obj.name);
           // 通过"[]"的方式获取属性
           console.log("年龄:"+obj["age"]);

           // 区别
           // "."号只能取本身的属性,"[]"里面可以是变量,也可以是自身的属性
           var obj1={
               name:"jack",
               age:18
           };
           // 定义一个变量
           var a="name";
           console.log(obj2[a]);//等同于 console.log(obj2["name"]);
           // console.log(obj2.a) 错误的写法,.只能取自身的属性
           console.log(obj2.name); */

           // 属性的删除
          /*  var obj2={
               name:"jack",
               age:18,
               sex:"男",
               email:"[email protected]"
           };
           // 通过.删除age属性
           delete obj2.age
           console.log(obj2);
           // 通过[]删除sex属性
           delete obj2["sex"];
           console.log(obj2);
           // 同样也可以通过变量删除
           var temp="email";
           delete obj2[temp];
           console.log(obj2); */

           // 属性的检测
           // in 运算符  判断对象中的属性是否存在
         /*   var obj3={
               name:"jack",
               age:18
           };
           console.log("name" in obj3);
           console.log("sex" in obj3); */

           // 使用对象的hasOwnProperty()方法
          /*  var obj4={
               name:"jack",
               age:18
           };
           console.log(obj4.hasOwnProperty("name"));
           console.log(obj4.hasOwnProperty("sex"));
           // 使用变量的方式判断
           var temp="name";
           console.log(obj4.hasOwnProperty(temp));
           var temp1="email";
           console.log(obj4.hasOwnProperty(temp1)); */

           // 判断属性的值是否不等于undefined
           var obj5={
               name:"jack",
               age:18
           };
           console.log(obj5.name!=undefined);
           console.log(obj5.sex!=undefined);
       };
    </script>
</head>
<body>

</body>
</html>

运行结果:

注意:如果属性的值正好是undefined,那么这时就不能用这种判断了,看下面的例子:

四、属性的遍历

1、使用for...in遍历属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript中属性的基本操作</title>
    <script>
       window.onload=function(){
           // 属性的设置或获取
           /* var obj={};
           // 通过"."号的方式设置属性
           obj.name="tom";
           //  通过"[]"的方式设置属性
           obj["age"]=20;
           // 通过"."号的方式获取属性
           console.log("姓名:"+obj.name);
           // 通过"[]"的方式获取属性
           console.log("年龄:"+obj["age"]);

           // 区别
           // "."号只能取本身的属性,"[]"里面可以是变量,也可以是自身的属性
           var obj1={
               name:"jack",
               age:18
           };
           // 定义一个变量
           var a="name";
           console.log(obj2[a]);//等同于 console.log(obj2["name"]);
           // console.log(obj2.a) 错误的写法,.只能取自身的属性
           console.log(obj2.name); */

           // 属性的删除
          /*  var obj2={
               name:"jack",
               age:18,
               sex:"男",
               email:"[email protected]"
           };
           // 通过.删除age属性
           delete obj2.age
           console.log(obj2);
           // 通过[]删除sex属性
           delete obj2["sex"];
           console.log(obj2);
           // 同样也可以通过变量删除
           var temp="email";
           delete obj2[temp];
           console.log(obj2); */

           // 属性的检测
           // in 运算符  判断对象中的属性是否存在
         /*   var obj3={
               name:"jack",
               age:18
           };
           console.log("name" in obj3);
           console.log("sex" in obj3); */

           // 使用对象的hasOwnProperty()方法
          /*  var obj4={
               name:"jack",
               age:18
           };
           console.log(obj4.hasOwnProperty("name"));
           console.log(obj4.hasOwnProperty("sex"));
           // 使用变量的方式判断
           var temp="name";
           console.log(obj4.hasOwnProperty(temp));
           var temp1="email";
           console.log(obj4.hasOwnProperty(temp1)); */

           // 判断属性的值是否不等于undefined
     /*       var obj5={
               name:"jack",
               age:18
           };
           console.log(obj5.name!=undefined);
           console.log(obj5.sex!=undefined);

           //
           var obj6={
               name:undefined,
               age:18
           };
           console.log(obj6.name!=undefined); */

           // 属性的遍历
           // for...in 遍历对象的属性
           var obj7={
               a:"1",
               b:"2",
               c:"3"
           };

           for(var v in obj7){
              // 输出obj7的属性
              console.log(v);
              // 输出属性对应的值
              console.log(obj7[v]);
           }
       };
    </script>
</head>
<body>

</body>
</html>

运行结果:

for..in同样也可以遍历数组:

五、序列化

1、JSON.stringify()将对象序列化成JSON格式的字符串,前端传递数据给后台的时候使用,例如:

2、JSON.parse()将JSON格式的字符串转换成对象,后台把数据传递到前端的时候使用,例如:

原文地址:https://www.cnblogs.com/dotnet261010/p/9822976.html

时间: 2024-10-31 17:24:16

JavaScript:属性的操作的相关文章

javascript对属性的操作

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>对属性的操作</title> </head> <body> <!--属性的设置--> <img src="img/lingzhiling.jpg" alt="" /> <script type="

JavaScript之属性读写操作

属性 分为属性名 和 属性值 在标签中设置属性 方法="属性值" 在css中设置属性 方法:属性名:属性值 操作 读操作 获取 查找 格式:元素.属性名 例:变量名.style.属性名 写操作 添加 替换 修改 格式:元素.属性名=新要设置的值 例:变量名.style.属性名='属性值' 一.属性读操作 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset

JavaScript对象属性赋值操作的逻辑

对象进行属性赋值操作时,其执行逻辑如下所示: 1. 当前对象中是否有该属性?有,进行赋值操作:没有,进行下一步判断. 2. 对象的原型链中是否有该属性?没有,在当前对象上创建该属性,并赋值:有,进行下一步判断. 3. 原型链中该属性是否允许操作?是,在当前对象上创建同名属性,并赋值:否,属性赋值失败. 无论是属性赋值还是新建属性,都是在当前对象上进行的,不会修改原型链!第三种情况下,新建的属性将会覆盖对象从原型链继承来的同名属性.

第一百二十六节,JavaScript,XPath操作xml节点

第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准DOM去查找XML中的节点方式,大大降低了查找难度,方便开发者使用.但是,DOM3级以前的标准并没有就XPath做出规范:直到DOM3在首次推荐到标准规范行列.大部分浏览器实现了这个标准,IE则以自己的方式实现了XPath. 一.IE中的XPath 在IE8及之前的浏览器,XPath是采用内置基于A

javascript iframe相关操作

1. 获得iframe的window对象 iframeElement.contentWindow 2. 获得iframe的document对象 存在跨域访问限制. chrome:iframeElement.contentDocument firefox:iframeElement.contentDocument ie:element.contentWindow.document 备注:ie没有iframeElement.contentDocument属性. var getIframeDocume

Javascript属性:addEvent()用法浅析

做 web 应用的人,经常会用到 Javascript 来处理页面上的一些事情.表单验证我们不谈,在根据用户使用情况,显示/隐藏,或者执行一段 js function,的时候,我们需要和页面的 DOM 树打交道.看看 Gmail ,发送邮件,按下"发送"钮后,用 Ajax 在后端发送邮件内容,根据返回的状态,在编辑页面的上方直接显示一小段文字"您的邮件已经发送.". 通常的思想,我们会在那个发送按钮里面写上: onclick="javascript:sen

Python之路day13 web 前端(JavaScript,DOM操作)

参考链接:http://www.cnblogs.com/wupeiqi/articles/5433893.html day13 1. CSS示例 2. JavaScript 3. DOM操作 上节内容回顾: 1. HTML标签 html/head/body/ input div,span a p br span table > tr行 th表头列 td表头列 h form> action method enctype=;;; select option input系列: text passwo

JavaScript标准Selection操作,对页面文件选取操作

一.简介 selection是对当前激活选中区(即高亮文本)进行操作. 在非IE浏览器(Firefox.Safari.Chrome.Opera)下可以使用window.getSelection()获得selection对象,本文讲述的是标准的selection操作方法.文中绝大部分内容来自 https://developer.mozilla.org/en/DOM/Selection 二.术语 以下几个名词是英文文档中的几个名词. 1.anchor:选中区域的“起点”. 2.focus:选中区域的

Javascript属性constructor/prototype的底层原理

在Javascript语言中,constructor属性是专门为function而设计的,它存在于每一个function的prototype属性中.这个constructor保存了指向function的一个引用.在定义一个函数(代码如下所示)时, function F() { // some code } JavaScript内部会执行如下几个动作: 为该函数添加一个原形属性(即prototype对象). 为prototype对象额外添加一个constructor属性,并且该属性保存指向函数F的

第一百一十六节,JavaScript,DOM操作样式

JavaScript,DOM操作样式 一.操作样式 CSS作为(X)HTML的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的CSS能力.CSS的能力和DOM级别密切相关,所以我们有必要检测当前浏览器支持CSS能力的级别. DOM1级实现了最基本的文档处理,DOM2和DOM3在这个基础上增加了更多的交互能力,这里我们主要探讨CSS,DOM2增加了CSS编程访问方式和改变CSS样式信息. DOM一致性检测 功能 版本号 说明 Core 1.0.2.0.3.0 基本的DOM,用于表现文档