Javascript 对象

Image: --core HTML5 canvas p20

var spritesheet = new Image();
spritesheet.src = '../running-sprite-sheet.png';
function drawSpritesheet() {
context.drawImage(spritesheet,0,0);
}
spritesheet.onload = function(e){
    drawSpritesheet();
}

Object:

数据属性:
1.[[Configurable]] //表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。 		
2.[[Writable]] //能否修改属性的值
3.[[Enumerable]] //能否通过for-in循环返回属性
4.[[Value]]//属性的值
Object.defineProperty()1:属性所在的对象2:属性的名字3:一个描述符对象,描述符的对象属性必须是:configurable,writable,enumerable,value;例如{configurable:false,value:"Nicholas"} //如果configurable设置为false,那么再调用Object.defineProperty()方法修改除了writable之外的属性都抛出错误
//访问器属性
1.[[Configurable]] //同上
2.[[Enumerable]]
3.[[Get]] //在读取属性时调用的函数 默认Undefined
4.[[Set]] //在写入属性时调用的函数 默认Undefined
//访问器属性不能直接定义,需要通过Object.defineProperty()来定义
var book = { _year:2004,edition:1}; 
Object.defineProperty(book,"year",{get:function(){return this._year;},set:function(newValue){ if (newValue > this._year){ this._year = newValue; edition += newValue - this._year;}}
Object.defineProperties(book,{
//上面所有属性,每个属性后面要是一个对象比如:_year:{value:2004;},year:{get:function(){},set:function(){}}
}
//读取属性的特性
Object.getOwnPropertyDescriptor()1:book2.要读取其描述符的名称//返回一个对象:如果是数据属性:configurable,enumerable,writable,value;如果是访问器属性:configurable,enumerable,get,set;

//------------------
prototype属性:一个指针,指向一个对象,可以由所有实例共享的属性和方法。
//创建了自定义构造函数后,其原型对象默认只会取得constructor属性,其他属性均由Object继承而来。
isPrototypeOf() 
Person.prototype.isPrototypeOf(person1);//true
Object.getPrototypeOf(person1) == Person.prototype //true
Object.getPrototypeOf(person1).name

person1.hasOwnProperty("name") //只有实例属性才返回true
person1.getOwnPropertyDescriptor("name") //返回实例属性描述符,如果是要得到prototype,直接原型调用
alert("name" in person1);//true 不管是实例还是原型,有name属性就返回true
Object.keys() //取得对象上所有可枚举的属性,返回字符串数组,只返回参数的作用域
Object.getOwnPropertyNames()//返回作用域内的所有属性
Object.propertyIsEnumerable()
//原型式继承
Object.create()1:用作新对象的原型对象2:[为新对象定义额外属性的对象]

Date: -- core p17

Date对象的初始化是根据下面2个函数,返回从1970.1.1 00:00:00至今的毫秒数(基于本地时区):
1.Date.parse()1:字符串<"6/24/2014","May 14,2013","Tue May 25 2004 00:00:00 GMT-0700">
2.Date.UTC()1:year,2:month(0-11),3:day(1-31),4:hour(0-23),5:minites,6:seconds,7:milliSeconds
//继承方法
toLocalString()
toString()
valueOf() //返回毫秒数,可用于Date对象的直接比较
getTime() return ms
setTime(ms)
getFullYear() //2007
getUTCFullYear() //UTC full year
setFullYear(2007)
setUTCFullYear()
getMonth() //0-11
getUTCMonth()
setMonth() //1:0-11 如果传入12,会增加年份,同date,hour,minutes,seconds,milliseconds
setUTCMonth()
getDate() //1-31
getUTCDate()
setDate()//1:1-31
setUTCDate()
getDay() //week 0-6
getUTCDay()
setDay() //week 1:0-6
setUTCDay()
getHours() //0-23
getUTCHours()
setHours()
setUTCHours()
getMinutes() //0-59
getUTCMinutes()
setMinutes()
setUTCMinutes()
getSeconds() //0-59
getUTCSeconds()
setSeconds //0-59
setUTCSeconds()
getMilliseconds()
getUTCMilliseconds()
setMilliseconds()
setUTCMilliseconds()
getTimezoneOffset() //返回本地时区与UTC时间相差的分钟数


Array :

array.push() //1或者多个参数,从数组后面推入,返回数组长度
array.pop() //从数组后面提取一个返回,length -1
array.shift()//从数组的头部去除一个返回,length -1
array.unshift()//从数组头部推入n个元素,返回数组长度
array.reverse()//数组反序排列
array.sort()//无参数会先调用toString(),因此需要一个参数:比较函数compare:第一个参数<第二个参数,需返回负数>
array.concat()//没有参数,回复副本,有一个参数或数组,衔接到数组后面,返回新数组
array.slice()//同python的[first:end],有负数参数
array.splice()//1参数:位置,2:删除项数,3-n:添加项数,返回从数组删除的项,如果2参数为0,则返回空数组
array.IndexOf()/lastIndexOf()//1:查找的项2:开始的位置,返回位置
//迭代方法
array.every()/*全中*/some()/*至少一项中*/filter()/*过滤*/forEach()/*运行每项*/map()/*运行每项,返回结果数组*/
1:运行的函数(1:数组项的值,2:索引3:数组本身)2:[运行该函数的作用域对象]
//并归函数:迭代所有项,返回最终值
array.reduce()
array.reduceRight()
//1:并归函数(1:prev,2:cur,3:index,4:array),返回值作为下次迭代的prev.2:[并归初始值]

RegExp:

var regexp = /pattern/flags;
var regexp = new RegExp() 1:pattern,2:flags
flags:1.g:global,全局模式2.i(ignore-casesensive)忽略大小写模式3.m (multiple-line)多行模式
正则表达式元字符,必须转义:()[]{}.|?*^+\$
正则的实例属性:
1.regex.global是否全局2.regexp.ignoreCase3.regexp.lastIndex搜索下一个匹配项的位置,0开始4.regexp.multiline,5.regexp.source正则表达式的字符串表示
其他属性:
1.regexp.input 返回需要匹配字符串2.regexp.leftContext 匹配左侧内容3.regexp.rightContext4.regexp.lastMatch/*最后匹配字符串*/,5.regexp.lastParen/*最后捕获组*/
//构造函数属性
regexp.$1-9//表示9个捕获组的访问标识,自动填充
exec()1:text 返回一个数组,包含Index<匹配的索引> && Input <text>
如果未设置捕获组情况下,在不设置全局的时候,同一text多次匹配都是返回第一匹配项信息;而设置全局下,会继续寻找匹配项,lastIndex会设置为下一个匹配项开始的位置
test()1:test 返回bool
继承方法:
1.toLocalString()2.toString()//都会返回正则表达式的字面量.
3.valueOf()//返回正则表达式本身

Function:

/*函数内部有两个特殊的属性:*/
1.this,2.arguments:还拥有一个callee指针,指向拥有该arguments的函数3.caller:该函数的调用者 arguments.callee.caller
3.默认的name属性,function后面的标示符
/*函数属性*/
1.length:参数的个数
2.proto
3.apply()1:作用域2:数组或aguments
4.call()1:作用域2:具体参数
5.bind()1:object//会把this绑定到object上
6.toLocalString(),toString(),valueOf()//返回函数的代码

基本类型:

var value = "25";
var number = Number(value); //转型函数
alert(typeof number)//“number”

var obj = new Number(value);
alert(typeof obj) //object		
//使用new 实例化基本包装类型,与直接调用同名转型函数是不一样的	

Number:

1.toFixed()1:number//显示几位小数,四舍五入
2.toExponential()1:小数位数//返回指数表示法(e)的字符表示方法
3.toPrecision()1:位宽

String:

string.length //字符长度,真实长度(不管字符占位单字节或双字节)
string.charAt()1:int//以0为开始索引--同[int]操作
string.charCodeAt()1:int//字符编码
string.concat()1~n:string,拼接,本身不改变
string.slice() 1:startIndex,2:[end] 如果存在负数,实际是负数+长度的实际结果
string.substr() 1:startIndex,2:字符个数 如果第一个是负数+长度,第二个转化为0
string.substring()1:startIndex,2:[end] 如果存在负数全部转化为0,且自动匹配起始、结束位置
string.indexOf(),string.lastIndexOf()1:string2:[startIndex]返回index or -1
string.trim(),string.leftTrim(),string.RightTim() //删除空白
string.toUpperCase(),string.toLowerCase()
string.toLocaleUpperCase(),string.toLocaleLowerCase() //建议
匹配模式
string.match()1:正则表达式 or RegExp对象//同RegExp.exec()
string.search()1:同上 //返回第一个找到索引 or -1
string.replace()1:regexp or charactor?:只会替换一个 2:charactor or function(match,pos,originalText)如果是多个捕获组match和pos 中间多出 捕获组匹配项
string.splite()1:分隔符 or regexp 2:数组大小 //返回数组
string.localeCompare()1:string //如果字符串小于参数字符串,则返回-1;相等0;大于1,区分大小写
String.fromCodeChar() 1-n:字符编码//静态方法,不需实例化,返回相应字符串

Global:

isNaN()
isFinite()
parseInt()
parseFloat()
//对URI进行编码,以便发送给浏览器,URI不能包含有些字符
encodeURI() /*整个URI,只能编码空格,不能#:\?*/对应 decodeURI()
encodeURIComponent() /*URI其中某一段,所有多能编码*/--> decodeURIComponet()
eval() //就是javascript解析器,参数:内部语句的作用域和调用语句一样

window对象:
//框架集:.top顶层框架 .parent 父级框架
//位置
screenLeft,screenTop //IE,Safari,Chrome,Opera
screenX,screenY //Firefox,Chrome
window.moveTo(x,y)
window.moveBy()//移动多少像素
//窗口大小
window.innerHeight
window.innerWidth
window.outerHeight
window.outerWidth
window.resizeTo()
window.resizeBy()
//导航和打开窗口
window.open()1:加载url 2:目标窗口 3:一串特性字符串 4:一个新页面是否取代浏览器历史记录中当前加载页面的布尔值
window.close()
window.opener 属性,指明父窗口
window.alert()
window.confirm()
window.prompt()
window.print()
window.find()
//location
window.location == document.location 相同
location.dash //#content
location.host // 
location.hostname //
location.href //
location.pathname // /WileyCDA/ 
location.port //"8080"
location.protocol //"http:"
location.search //"?q=javascript" 以问好开头
location.assign()1:url //打开新纪录
location.replace()1:url  前一个页面不会有记录
location.reload()[true:重新服务器下载]false:从缓存

Math对象:

const:
Math.E //常量e 自然对数的底数
Math.LN10 //10的自然对数
Math.LN2 //2的自然对数
Math.LOG2E //以2为底e的对数
Math.LOG10E //以10为底e的对数
Math.PI
Math.SQRT1_2 //1/2的平方根
Math.SQRT2 //2的平方根
//多个参数,返回最大或最小值
Math.max()
Math.min()
Math.ceil()
Math.floor()
Math.round()
Math.random() //返回0-1的浮点数,Math.floor(Math.random()*10 +1);
Math.abs(num) //返回绝对值
Math.exp(num) //e的num次幂
Math.log(num) //num的自然对数
Math.pow(num,power) //num的power次方
Math.sqrt(num) //num的平方根
Math.acos(num) //num的反余弦
Math.cos(num)
Math.sin(num)
Math.asin(num)
Math.tan(num) //正切
Math.atan(num)
Math.atan2(x,y) //返回y/x的反正切


你可能感兴趣的:(Collection,Class)