llwcy8801/blog

第5章 引用类型

Opened this issue · 0 comments

5.1Object类型
new Object()构造函数
对象字面量表示法 不调用构造函数
[name] 表示属性名可以使用变量、关键字

5.2Array类型
new Array()
数组字面量表示法 不调用构造函数
数组包含4,294,967,295个项
5.2.1检测数组
instanceof 不同全局变量不同
Array.isArray()
5.2.2转换方法
toString() 逗号拼接字符串
valueOf() 数组
alert() 接受字符串
join() 重组 无参数使用,数组中null和undefined使用空字符串表示
5.2.3栈方法
LIFO
push() 返回新数组长度
pop() 返回对尾移除项
5.2.4队列方法
FIFO
push() 添加返回长度
shift() 返回队首
unshift() 队首添加
5.2.5重排序方法
reverse() 反向排序
sort() 排序 使用toString() 转化 接受函数参数
5.2.6操作方法
concat() 返回新数组
slice() 返回新数组
splice() 返回删除项
-删除splice(0,2) 第一项的位置,项数
-插入splice(2,0,'red','green') 开始位置,项数,插入项
-替换 开始位置,删除项数,插入项
5.2.7位置方法
indexOf(searchvalue,fromindex) 开始0查找 返回位置
lastIndexOf() 末尾开始找 返回位置
没有返回-1
5.2.8迭代方法
(函数(值,位置,数组本身),作用域对象)
(item,index,array)
every() 每一项返回true,返回true
some() 任一项返回true,返回true
filter() 返回true组成数组
forEach() 没有返回值
map() 调用结果返回值
不修改原数组
5.2.9缩小方法
reduce() 函数,缩小基础的初始值
reduceRight()
函数(前一个值,当前值,索引,数组对象)
5.3Date类型
new Date()
Date.parse() 日期字符串参数,返回相应日期毫秒数 基于GMT
6/13/2004
January 12,2004
Date.UTC() 年份、基于0的月份、1-31的哪一天、小时0-23、分钟、秒、毫秒
基于当前时区
Date.now() 当前日期和时间毫秒数
使用 new +Date() 转化毫秒
5.3.1继承的方法
toLocaleString() 当前时区时间
toString() 带有时区信息的日期和时间
valueOf() 不反回字符串,返回日期毫秒
5.3.2日期格式化方法
toDateString() 特定格式显示星期几、月、日和年
toTimeString() 特定格式显示时、分、秒和时区
toLocaleDateString() 特定于地区显示星期几、月、日和年
toLocaleTimeString() 特定格式时、分、秒
toUTCString() 完成UTC日期
5.3.3日期/时间组件方法
UTC日期指没有时区偏差将日期转换为GMT时间
getTime() 返回日期毫秒数,与valueOf()相同
setTime(毫秒) 毫秒设置日期
getFullYear() 获得4位年份
getUTCFullYear() 返回UTC的4位年份
setFullYear(年) 设置年份
setUTCFullYear(年) 设置UTC年份
getMonth() 获得日期中月份 0开始
getUTCMonth() 返回UTC月份
setMonth(月) 设置月份
setUTCMonth(月) 设置UTC月份
getDate() 获得月份中天数
getUTCDate() 获得UTC天数
setDate(日) 设置天数
setUTCDate(日) 设置UTC天数
getDay() 获得星期几
getUTCDay() 获得UTC星期几
getHours() 获得小时
getUTCHours() 获得UTC小时
setHours(时) 设置时
setUTCHours(时) 设置UTC时
getMinutes() 获取
getUTCMinutes() 获取UTC分钟
setMinutes(分) 设置分钟
setUTCMinutes(分) 设置UTC分钟
getSeconds() 获取秒数
getUTCSeconds() 获取UTC秒数
setSecondes(秒) 设置秒
setUTCSecondes(秒) 设置UTC秒
getMilliseconds() 获取毫秒
getUTCMilliseconds() 获取UTC毫秒
setMilliseconds(毫秒) 设置毫秒
setUTCMilliseconds(毫秒) 设置UTC毫秒
getTimezoneOffset() 返回本地与UTC相差分钟
5.4RegExp类型
var expression=/pattern/flags; 字面量
g:global 应用于所有字符串
i:case-insensitive不区分大小写
m:multiline多行模式
元字符
([{^$|)?*+.]}
var pattern2=new RegExp("[bc]at","i");
字面量创建正则实例
5.4.1RegExp实例属性
-global 设置g
-ignoreCase 设置i
-lastIndex 开始搜索位置,0
-multiline 设置m
-source 正则字符串表示,规范字符串,字面量字符串
5.4.2RegExp实例方法
exec() 返回第一个匹配项数组 没有返回null
第一项是整个模式匹配 第二个是捕获组匹配字符串
数组两个属性 index 位置,input 应用字符串
不使用g 每次从头匹配
test() 匹配返回true,否则返回false
继承toLocaleString()和toString() 返回正则字面量
valueOf() 返回正则本身
5.4.3RegExp构造函数属性
RegExp.input $_ 最近一次要匹配字符串
RegExp.lastMatch $& 最近一次匹配项
RegExp.lastParen $+ 最近一次捕获组
RegExp.leftContext input字符串中lastMatch之前的文本
RegExp.Multiline 布尔值
RegExp.rightContext input字符串中lastMatch后文本
5.5Function 类型
函数实际是对象,是Function类型的实例
函数是对象,函数名是指针
5.5.2函数声明与函数表达式
function func(){}
var func=function(){};
5.5.4函数内部属性
arguments和this
callee 指针指向拥有arguments对象的函数
this 函数执行环境对象 全局window
caller 调用当前函数的函数引用 arg.callee.caller
5.5.5函数属性和方法
函数属性
length 参数个数
prototype 不可枚举
函数方法
apply(作用域,参数数组)
call(作用域,参数1,参数2,.. )
es5 bind() 创建函数实例,this绑定到函数
toLocaleString()和toString() 返回函数代码
valueOf() 返回函数代码
5.6基本包装类型
Boolean/Number/String
基本类型实例为object
5.6.3Number()类型
Number()类型
转化字符串
toFixed(num) 数值变指定几位小数符串 0-20位
toExponential(num) 几位小数指数表示法
toPrecision(num) 最合适返回固定位数,所有位数 1-21位
5.6.3String类型
1.字符方法
charAt(num)和charCodeAt(num) 所在位置字符或编码
es5 string[num]
2.字符串操作方法
concat() 拼接返回新字符串,可接受多个参数
substring(开始,结束) 返回新值,负数转为0
slice(开始,结束) 返回新值,负数加字符串长度
substr(开始,个数) 返回新值,第二个负数为0
3.字符传位置方法
indexOf() 和 lastIndexOf() 查找字符,没有返回-1,第二参数开始位置
4.trim() 方法
es5 trim() 删除前后空格,返回新字符串
trimLeft()和trimRight() 删除前后空格
5.字符串大小写转换方法
toUpperCase()和toLowerCase()
toLocaleUpperCase()和toLocaleLowerCase()
6.字符串的模式匹配方法
match() 与RegExp的exec() 相同
search() 返回字符串第一个匹配项索引
replace() RegExp对象或字符串(不会转为正则)
第二个函数传入,匹配项、位置、原始字符串
split() 分隔符或RegExp对象,数组大小,以制定分隔符分割,返回数组
7.localeCompare()方法
匹配字符前返回-1,相等0,之后1
8.fromCharCode()方法
与charCodeAt() 相反
5.7单体内置对象
Global 和 Math
5.7.1Global对象
1.URI编码对象
encodeURI() 和 encodeURIComponent() 1编码所有,2参数
decodeURI() 和 decodeURIComponent() 解码
2.eval()方法
参数字符串,解释器与函数执行环境相同
3.Global对象的属性
undefined/NaN以及Infinity都是Global对象的属性,原生引用类型构造函数
4.window对象
代替Global
5.7.2Math对象
1.Math对象的属性
Math.E 自然对数的底数,e值
Math.LN10 10的自然对数
Math.LN2 2的自然对数
Math.LOG2E 以2为底的对数
Math.LOG10E 以10为底e的对数
Math.PI pi的值
Math.SQRT1_2 1/2的平方根
Math.SQRT2 2的平方根
2.min()和max()方法
var max=Math.max.apply(Math,values);
3.舍入方法
Math.ceil() 向上舍入整数
Math.floor() 向下舍入整数
Math.round() 标准舍入整数
4.random() 方法
介于0和1之间的随机数
function selectFrom(lowerValue,upperValue){
var choices=upperValue- lowerValue+1;
return Math.floor(Math.random()*choices+lowerValue);
}
5.其他方法
Math.abs(num) 绝对值
Math.exp(num) Math.E的num次幂
Math.log(num) num的自然对数
Math.pow(num,power) num的power次幂
Math.sqrt(num) num的平方根
Math.acos(x) x反余弦值
Math.asin(x) x反正弦值
Math.atan(x) x反正切值
Math.atan2(y,x) y/x的反正切值
Math.cos(x) x余弦值
Math.sin(x) x正弦值
Math.tan(x) x正切值