美文网首页
Js Object一部分操作

Js Object一部分操作

作者: jasmine_jing | 来源:发表于2017-03-22 17:05 被阅读0次
/*
 * 这是一张 JavaScript 代码草稿纸。
 *
 * 输入一些 JavaScript,然后可点击右键或从“执行”菜单中选择:
 * 1. 运行 对选中的文本求值(eval) (Ctrl+R);
 * 2. 查看 对返回值使用对象查看器 (Ctrl+I);
 * 3. 显示 在选中内容后面以注释的形式插入返回的结果。 (Ctrl+L)
 */
Object.getOwnPropertyDescriptor
var person = [];
Object.defineProperty(person,'name',{
  writable:false,
  enumerable:true,
  configurable:false,
  value:'Bob'
});
person.name;
/*
Bob
*/

person.name=1;
/*
1
*/
person.name;//因为writable 为false;这里是不可写的
/*
Bob
*/
delete person.name;//这的的configurable为Ffalse 无法删除
/*
false
*/

Object.defineProperty(person,'type',{
  configurable:true,
  writable:true,
  enumerable:false,
  value:"Object"
});
Object.keys(person);//获取对象上的键 Object.keys;
/*
name
*/

Object.defineProperties(person,{
  title:{value:'world',enumerable:true},
  corp:{value:'BBBB',enumerable:true},
  salary:{value:5000,enumerable:true,writable:true}
});
Object.getOwnPropertyDescriptor(person,'salary');
/*
[object Object]
*/
Object.keys(person);
/*
name,title,corp,salary
*/

Object.defineProperties(person, {
    title : {value : 'fe', enumerable : true},
    corp : {value : 'BABA', enumerable : true},
    salary : {value : 50000, enumerable : true, writable : true},
    luck : {
        get : function() {
        return Math.random() > 0.5 ? 'good' : 'bad';
        }
    },
    promote : {
        set : function (level) {
            this.salary *= 1 + level * 0.1;
        }
    }
});

person.salary;



//对象标签 proto class extensible
var toString = Object.prototype.toString;
toString.call(null);
/*
//[object Null]
*/
function getType(o){return toString.call(o).slice(8,-1);};
getType(null);
/*
Null
*/
getType(undefined);
/*
Undefined
*/
getType(1);
/*
Number
*/
getType(new Number(1));//这里是对象
/*
Number
*/
typeof new Number(1);
/*
object
*/
getType(true);
/*
Boolean
*/
getType(new Boolean(true));//这里依然是对象
/*
Boolean
*/

//extensible标签
var obj = {x:1,y:2};
Object.isExtensible(obj);//默认是可以扩展的
/*
true
*/
Object.preventExtensions(obj);//阻止扩展
/*
[object Object]
*/
Object.isExtensible(obj);//这里显示不可以扩展
/*
false
*/
obj.z = 1;
obj.z
/*
undefined  add new property failed
*/
Object.getOwnPropertyDescriptor(obj,'x');//查看 x的属性 value:1,writable:true,enumerable:true,configable:true
/*
[object Object]  
*/

Object.seal(obj);
Object.getOwnPropertyDescriptor(obj,'x');//将 x的configurable设置为false
Object.isSeal(obj);

Object.freeze(obj);
Object.getOwnPropertyDescriptor(obj,'x');//将x的 writable 和configurable都设置为false
Object.isFrozen(obj);


//序列化、其他对象方法
var obj = {x:1,y:true,z:[1,2,3],nullVal:null};
JSON.stringify(obj);//将对象转换为JSON字符串
/*
{"x":1,"y":true,"z":[1,2,3],"nullVal":null}
*/

obj = {val:undefined,a:NaN,b:Infinity,c:new Date()};
JSON.stringify(obj);
/*
{"a":null,"b":null,"c":"2017-03-22T07:38:52.318Z"}//默认会忽略到 值为undefined的;NaN/Infinity 都为null,时间会转换为 当前的时格式
*/

obj = JSON.parse('{"x":1}');//将json字符串转换为 对象

//序列化 自定义
var obj ={
    x:1,
    y:2,
    z:{
        z1:1,
        z2:2,
        toJSON:function(){
            return this.z1 + this.z2;
        }
    }
};
JSON.stringify(obj);
/*
{"x":1,"y":2,"z":3}
*/


var obj = {x:1,y:2};
obj.toString();
obj.toString = function(){return this.x + this.y};
"Result" +obj;
/* 
Result3     +obj;//转化为 数字一元加号 数字类型
*/

obj.valueOf = function(){return this.x + this.y +100;};
//+obj;
"Result" + obj;
/*
Result103



相关文章

  • JS对象 & JSON & JS数组操作

    JS对象 & JSON & JS数组操作 JSON 格式(JavaScript Object Notation 的...

  • Js Object一部分操作

  • DOM的增删改查

    DOM概念 DOM(Document Object Model),是JS操作网页的接口(Document Obje...

  • js Object的属性和方法

    本篇主要介绍JS中常用Object的属性方法。 delete 操作 in 运算符 obj.hasOwnProper...

  • DOM编程

    JS使用document操作网页这就是Document Object Model文档对象模型 div六层原型 DO...

  • DOM模型(一)—— DOM模型概述

    一、基本概念 1.1、DOM DOM是JS操作网页的接口,全称为“文档对象模型”(Document Object ...

  • 面试题【Day10】

    本篇绪论 1, call、apply、bind 2, Object.create() 3,JS中的new操作符的原...

  • JavaScript DOM

    DOM(Document Object Model)文档对象模型,将网页转为一个JS对象,从而用脚本进行各种操作。...

  • Js基础小结

    Js的组成: DOM: Document Object Model,文档对象模型,为我们操作页面元素提供了一套方法...

  • 第九天 DOM

    JS中常用的DOM操作 DOM:document object model 文档对象模型(提供一系列的属性和方法,...

网友评论

      本文标题:Js Object一部分操作

      本文链接:https://www.haomeiwen.com/subject/mfoonttx.html