导读:
4.1从数组到对象
对象示例
var hero={
name:"wkw",
age:"22"
};
属性名必须加引号的情况:
JS的保留字
包含空格/其他字符
数字开头
4.1.3访问对象属性
hero.name //wkw
hero['name'] //wkw
hero.firseName //undefined
4.1.4调用对象方法
hero.say();
4.1.5修改属性与方法
删除
delete hero.name;
某些内建对象属性不可改变,(Math.PI)
ES5允许创建不可改变的对象
4.1.6使用this值
当我们引用this时,实际上就是“这个对象”或者“当前对象”
4.1.7构造器函数
constructor function
function Hero(name){
this.name = name;
this.worker = "softwareEg";
this.whoAreYou=function(){
return "I am"+name+"im a"+worker;
}
}
var h1=new Hero('wkw');
var h2=new Hero('zjq');
构造器函数大写
4.1.8全局对象
不使用new操作符调用构造器函数情况,this指向全局变量
function Hero(name){
this.name=name;
}
var j=Hero('wkw');
typeof j; //undefined,无返回值返回undefined
name;//wkw
window.name;//wkw
4.1.9构造器属性
constructor 属性指向用于创建该对象的构造器函数的引用
4.1.10instanceof操作符
一个对象是否由指定的构造器创建的
function Hero(){}
var h=new Hero;
var o ={};
h instanceof Hero; //true
h instanceof Object;//true
o instanceof Object;//true
4.1.11返回对象的函数
function factory(name){
return{
name:name
};
}
var o = factory('wkw');
o.name;//wkw
o.constructor;//function Object(){[Native Code]}
实际上构造器函数也能返回对象
4.2内建对象
数据封装类对象–Object,Array,Boolean,Number,String
工具类对象–Math,Data,RegExp
错误类对象–
4.2.1Object
“空”对象并非完全无用
o.constructor 返回构造器函数的引用
o.toString() 返回对象的描述字符串//alert,连接字符串等
o.valueOf() 返回对象的单值描述信息,通常返回对象本身//简单对象返回自己
4.2.2Array
数组方法
join()返回一个由目标数组中所有元素用逗号连接而成的字符串
slice()不修改数组 返回某个片段
splice (移除首索引,移除尾索引,填补的新元素) 修改目标数组,移除并返回指定切片
4.2.3Function
prototype属性:
toString方法可查看函数的源代码
用它来区分函数时本地还是自定义的
call和apply
触发函数,指定相关的调用参数
让一个对象去”借用“另一个对象的方法,为己所用//代码重用
推断对象类型
Object.prototype.toString.call([]);//[object Array]
Array.prototype.toString.call(a);
a.toString();//已经被重写
4.2.4 Boolean
var b=new Boolean();
b是一个对象,转换成布尔值用valueOf()方法
4.2.6String对象的一些方法
toUpperCase(),toLowerCase()大小写
charAt() 返回指定位置的字符,位置不存在返回空字符串
indexOf()字符串内部搜索,从0开始
slice()/substring()返回字符串指定的区间
split() 传递的字符来分割字符串成一个数组
concat()合并字符串
以上返回都是新的字符串
4.2.7正则表达式
//待学习