JavaScript的对象及正则(RegExp)对象
来源:互联网 发布:舒缦水暖床垫淘宝网 编辑:程序博客网 时间:2024/05/22 03:31
创建对象
1/通过var obj={ } 对象字面量(object literal)法
var obj1={x:3,y:6,z:7}var obj2={ 'x':1, 'y':2, username:'king', 'for':'Javascript关键字必须放到引号之间' 'first-name':'queen', married:true, test:null, test1:undefined, salary:12.3, person:{ username:'king', age:12, addr:'peking', }};
2/通过new object( )创建对象
var obj3=new object();//创建一个空对象,{}var arr=new Array();//空数组[]var date=new Date();//日期时间对象var reg=new RegExp('js');//创建正则对象
3/通过构造函数创建对象
function Test(){}var obj4=new Test();var obj4=Test();//意为运行该函数 function Test1(num1,num2){ this.n1=num1; this.n2=num2;}var obj5=new Test1(5,6);
通过instanceof操作符可以检测一个对象是否由某个指定的构造器函数
alert (obj5 instanceof Test1); //输出true
4/通过Object.create来创建对象
var obj6=Object.create( {x:1} );var obj7=Object.create(null); //不会继承var obj8=Object.create(Object.prototype); //创建一个普通的空对象
属性操作
查询属性
①对象名.属性名②对象名[属性名]③当处于某个对象方法内部的时候,可以通过this来访问同一对象的属性
var person={username:'king',age:12,salary:1200,addr:'peking',sex:'男'};//查询属性console.log('用户名为'+person.username+'\n'+'性别'+person.sex);console.log('薪水:'+person['salary']+'\n'+'地址:'+person['addr']) //如果属性不确定需要使用[]var key='username';console.log(person[key]) //不能加''function PersonInfo(name,age,sex){this.name=name;this.age=age;this.sex=sex;}var person1=new PersonInfo('king',34,'男');console.log(person1.name+person['sex'])
添加属性
var obj={}; //空对象obj.username='king';obj.age=12;obj.addr='peking';obj['test']='this is a test';console.log(obj.username+'\n'+obj.age+'\n'+obj.addr+'\n'+obj['test']);
修改制定属性
var obj={}; //空对象obj.username='king';obj.age=12;obj.addr='peking';obj['test']='this is a test';console.log(obj.username+'\n'+obj.age+'\n'+obj.addr+'\n'+obj['test']);
删除属性:通过delete删除制定属性
delete obj.test;
只能删除自身属性,不能删除继承属性。
要删除继承属性,只能从定义它属性的原型对象上删除它,而且只会影响到
delete不能删除那些可配置性为false的属性
遍历属性:通过for in遍历属性
var obj1={x:1,y:2,test:'this is a test'};for(var p in obj1){console.log(p+'\n');}// 输出内容为 x y test
通过in检测对象上是否有某个属性
function foo(){};var obj=new foo();obj.x=1;console.log('x' in obj);//可访问原型console.log(obj.hasOwnProperty('x'));//不访问原型
访问方法
对象名.方法名( ) 如果对象名.方法名的形式,将返回定义函数的字符串
var obj2={username:'king',age:12,sayHi:function(){return 'say Hi';},info:function(){return '用户名'+this.username+'\n'+'年龄:'+this.age+'\n地址:'+this.addr;}};console.log(obj2.sayHi());console.log(obj2.info());
对象结构
对象属性特征
数据属性:4个表述行为的特征:
[[configurable]]
表示是否能通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。直接在对象上定义的属性,他们的默认值为true
[[Enumerable]]
表示能否通过for in循环返回属性。代表属性是否可以枚举。直接在对象上定义的属性默认值为true
[[writable]]
表示能否修改属性的值。默认值为true
[[value]]
包含这个属性的数据值。读取属性值的时候,从这个位置读取。
写入属性值的时候,把新值保存在这个位置。这个特性的默认值为undefined
如果属性不可配置,但是可以把writable的true变成false,但不能将false变为true
存取器属性:get——获取属性的值 set——设置属性的值
使用
//创建一个对象Object.defineProperty(obj,"x".{value:1,writable:true,enumerable:true,configurable:true});//创建多个对象var person={};Object.defineProperties(person,{'username':{value:'king',writable:true,enumerable:true ,configurable:true},age:{value:12,writable:false}});console.log(Object.getOwnPropertyDescriptor(person,"username"));//得到对象属性描述属性描述 __proto__:null, //强制没有继承而来的属性 IE不支持
三个相关对象特性
1/原型(prototype)
对象的原型指向另外一个对象,本对象的属性继承它自己的原型对象
- 通过对象字面量创建的对象使用Object.prototype作为它们的原型
- 通过new创建的对象使用构造函数的prototype属性作为他们的原型
- 通过Object.create()创建的对象使用第一个参数(也可以是null)作为它们的原型
检测是否为原型对象:console.log(obj.isPrototypeOf(obj1));
2/对象的类(class)
一个表示对象类型的字符串,可以通过对象的toString()方法间接查询
3/对象的扩展标记(extensible flag)
指明了是否可以向该对象添加新属性
内建对象之正则(RegExp)对象
语法:var patt=new RegExp(pattern,modifiers);
var patt=/pattern/modifiers; /模式/模式修饰符
常用修饰符
模式
阅读全文
0 0
- JavaScript的对象及正则(RegExp)对象
- 使用javascript的RegExp对象(正则)
- Javascript 正则表达式RegExp对象
- JavaScript RegExp 对象 正则表达式
- JavaScript正则表达式RegExp对象
- JavaScript 正则表达式 RegExp 对象
- JavaScript 正则表达式对象RegExp
- javascript 正则对象(RegExp)方法
- JavaScript的RegExp对象
- JavaScript的RegExp对象
- JavaScript的RegExp对象
- 轻松学习JavaScript十四:JavaScript的RegExp对象(正则表达式)
- JavaScript中正则表达式RegExp对象的test方法
- JavaScript RegExp (正则表达式对象)
- JavaScript RegExp 正则表达式对象详细说明
- JavaScript RegExp(正则表达式) 对象
- javascript正则表达式之二-RegExp对象
- JavaScript对象之正则表达式-RegExp
- Android几种打开SQLite的方法
- JAVA设计模式:状态模式
- Java基础——流程跳转语句
- 大数据 课程
- Linux常用命令
- JavaScript的对象及正则(RegExp)对象
- HDU5963 朋友 博弈
- 0069 drools workbench 在wildfly上的搭建
- int和integer的区别
- [bzoj2038][莫队算法][板子]小Z的袜子
- C#入门作业二补充
- 1038统计同成绩学生(Hash散列)
- 用正则表达式提取信息
- 区间第k大(主席树)