引用类型

一,Object类型
1,创建object实例的方法
  1)var person = new Object();
       添加属性,方法
  2)var person = {
       添加属性,方法
    }
  字面量语法,属性名可以使用字符串或不是字符串,不调用构造函数
  3)var person = {}
      添加属性,方法
2,访问属性和方法
  1)点表示法
  2)[]表示法,属性以字符串形式给出,可以通过变量访问(属性名赋值给一个 变量)
  3)属性名包含,空格,关键字,不能使用点表示法
二,Array类型
var colors = new Array();
var colors = new Array(20);
var colors = new Array("red","blue","green");
var colors = ["red","blue","green"];字面量表示法,不调用构造函数
1,检测数组
  if(value instanceof Array){//对数组的操作}
  只适用于一个全局执行环境,
  if(Array.isArray(value)){//对数组的操作}
2,转换方法
  1)toString()会返回数组中每个值的字符串形式拼接成的以逗号分隔的字符串
  2)valueOf()返回的还是数组
  3)toLocaleString()方法会与上面相同,返回每一项的toLocaleString()
  4)join() 使用给定的分隔符来构建字符串
3,栈方法
  1)push() 接收任意数量的参数,逐个添加在数组的尾部,返回数组最新长度
  2)pop() 不需要参数,在数组尾部移除一项,返回被移除项
4,队列方法
  1)shift() 不需要参数,在数组前部移除一项,返回被移除项
  2)unshift() 在数组的前端添加任意数量的项,并返回新数组长度
5,重排序方法
  1)reverse() 反转数组项的顺序
  2)sort() 调用数组的头String()转型方法,然后比较得到的字符串
  传人一个比较函数作为参数
  function compare(value1,value2){return value2-value1;}
6,操作方法
  1)concat() 基于当前数组,添加新项,或只返回副本
  2)slice() 给定返回项起始,结尾位置两参数,给定一个默认结束位置为最后不包括结束位置的项,如果给参数为负,在加上数组长度
  3)splice() 给定参数删除的起始项,删除的项数,添加的项,实现删除,添加,替换,返回包含删除项的数组,不删除则返回0,原数组改变
7,位置方法
  1)indexOf() 从数组开头查找,两个参数,要查找的项和开始查找的起点索引
  2)lastIndexOf() 从数组的末尾开始向前查找
8,迭代方法
每个方法都接受两个参数:要在每一项上运行的函数和可选的运行函数的作用域对象,
传入的函数会接受三个参数:数组项的值,该项在数组中的位置,和数组对象本身。
  1)every() 对数组中每一项运行给定的函数,该函数对每一项都返回true,则返回true
  2)filter() 对数组项中的每一项运行给定的函数,返回该函数会返回true的项组成的数组
  3)forEach() 对数组中每一项运行给定的函数,没有返回值
  4)map() 对数组中每一项都运行给定的函数,返回每次函数调用的结果组成的数组
  5)some() 对数组中的每一项都运行给定的函数,如果该函数对某一项返回true,则返回true
9,归并方法
都会迭代数组的所有项,然后构建一个最终返回的值,
接受两个参数:在每一项上调用的函数,可选的作为归并基础的初始值
传人函数会接受四个参数,前一个值,当前值,项的索引,和数组对象
  1)reduce() 从数组第一项开始
  2)reduceRight() 从数组最后一项开始
三,Date类型
var now = new Date() 不传人参数会获取当前的日期和时间
var now = new Date(Date.parse("May 25,2004"));
var now = new Date(Date.UTC());
var soneDate = new Date("May 25,2004");
1,继承方法
  1)toLocaleString() 按照与浏览器设置的地区相适应的的格式返回日期和时间,一般包含AM,PM,不包含地区
  2)toString() 返回带有时区信息的日期和时间
  3)valueof() 返回日期的毫秒表示,多用于比较时间的前后
2,日期格式化方法
  1)toDateString() 以特定于实现的格式显示 星期,月,日,年
  2)toTimeString() 以特定于实现的格式显示 时,分,秒,时区
  3)toLocaleDateString() 以特定于地区的格式显示 星期,月,日,年
  4)toLocaleTimeString() 以特定于实现格式显示 时,分,秒
  5)toUTCString() 以特定于实现的格式完整的UTC时期
  6)toGETString() 同上
3,日期时间组件方法
  1)getMonth() 返回以0为基数的月份
  2)getDay() 返回星期几
  3)getFullYear() 返回4位的年份
4,几个方法
  1)Date.parse() 接受一个表示日期的字符串参数,参数的字符串不能表示日期则返回NaN
  2)Date.UTC() 参数分别是年份,基于0的月份,日(1-31),小时(0-23),分钟,秒,毫秒
  3)Date.now() 返回表示调用这个方法的日期和时间的毫秒数
四,RegExp类型
var expression = /pattern/ flags;
flags:g表示全局模式匹配所有,i表示区分大小写,m表示多行模式
var pattern2 = new RegExp("[bc]at","i");
1,实例
  1)实例属性
  global:布尔值,是否设置了g标志
  ignoreCase:布尔值,是否设置了i标志
  lastIndex:整数,表示开始搜索下一个匹配项的字符位置,从0开始
  multiline:布尔值,是否设置m标志
  source:正则表达式的字符串表示,按字面量形式传人,不是构造函数的字符串模式
2,实例方法
  1)exec() 一个参数,要应用模式的字符串,返回包含第一个匹配项信息的数组,没有匹配返回null
  返回的数组是Array实例,包含额外的两个属性,index和input,index表示匹配项在字符串中的位置,input表示应用正则表达式的字符串
  2)test() 接收一个字符串参数,模式与该参数匹配情况下返回true,多用于if语句中
  3)toLocaleString() toString() 返回正则表达式的字面量,与创建正则表达式的方式无关
3,构造函数属性
  1)input      $_    最近一次要匹配的字符串
  2)lastMatch    $&   最近一次要匹配项
  3)lastParen    $+    最近一次要捕获组
  4)leftContext  $`   input字符串中lastMatch之前的文本
  5)rightContext  $'   input字符串中lastMatch之后的文本
  6)multiline    $*   布尔值,表示是否所有表达式都使用多行模式
4,模式的局限性
五,Function类型
function sum(){}
var sum = function(){};
var sum = new Function("参数","参数","函数体"); 不推荐
使用不带圆括号的函数名访问函数的指针,不是调用函数
1,没有重载
  同名函数,则后声明的函数有效
2,函数声明和函数表达式
  1)函数声明:解析器率先读取函数声明,使其在执行任何代码之前可用
  2)函数表达式:解析器执行到所在代码行,才会真正被解释执行
3,作为值的函数
  1)函数作为参数
  2)函数作为返回值
4,函数的内部属性
  1)argument保存函数参数的对象,含有callee属性,为一个指针,指向拥有这个argument对象的函数,多用于函数名会改变的时候
  2)this对象引用的是函数据以执行的环境对象
5,函数属性和方法
  1)length属性,表示希望接收的参数的个数
  2)protoype属性,保存他们所有实例方法的真正所在,不可枚举(不能使用for-in)
  3)apply() 特定域中调用函数 接收两个参数:运行函数的作用域和参数数组(可以是数组,可以是argument)
  4)call() 用法同上,接收的第二个参数必须逐个列出该函数的参数,用于扩充作用域
  5)toString() toLocaleString() 返回函数的代码,具体形式因浏览器而异
六,基本包装类型
typeof 基本包装类型返回object 所有基本包装类型的对象会被转换为布尔值true
使用new调用基本包装类型的构造函数(返回object),与直接调用同名的转型函数不一样的(返回包装类型)
1,Boolean类型
  1)var falseObject = new Boolean(false)
  var falseValue = false;
  typeof falseObject object
  typeof falseValue boolean
  falseObject instanceof Boolean   true
  falseValue instanceOf Boolean   false
2,Number类型
  1)var numberObject = new Number();
  2)valueOf()返回数值,toString()返回字符串,toLocaleString() 返回字符串
  3)toFixed() 按照给定的参数返回指定小数位的字符串表示,toExponential() 按照指数表示法,toPrecision() 按照恰当的形式返回
  4)var numberObject = new Number(10);
  var numberValue = 10;
  typeof numberObject object
  typeof numberValue false
  numberObject instanceOf Number   true
  numberValue instanceOf Number    false
3,String类型
var stringObject = new String("hello world");
var stringValue = "hello woerld";
  1)字符方法
  charAt() 接受一个参数,以单字符的形式返回给定位置的字符,以0开始,可以直接用字符串名[]同样效果
  charCodeAt() 同上,返回给定字符的字符编码
  2)字符串操作方法
    concat() 将一个或多个字符串拼接,返回新的字符串不改变原字符串,参数为要拼接的字符串,拼接多用+操作符
    slice() 给定两个参数,返回字符串的起始和结束位置(不包括结束位置),截取字符串的一部分,第二个参数不给默认到最后
    substring() 同上
    substr() 同样返回字符串的一部分,第二个参数表示返回字符串的个数遇到负数参数,slice() 会把参数都加上字符串的长度,substr() 将第一个负参数      加字串长度,第二个变0,substring() 会把所有负参数变成0
  3)字符串位置方法
    indexOf() 搜索参数给定的子字符串,返回子字符串的位置,没有返回-1,从头开始找,也可是指定开始查找的位置
    lastIndexOf() 作用同上,从结尾开始查找
  4)trim方法
    创建字符串的副本,删除前置及后缀的所有的空格
  5)字符串大小写转换方法
    toLowerCase() 转换成小写
    toLocaleLowerCase() 特定地区
    toUpperCase() 转换成大写
    toLocaleLowerCase() 特定地区
  6)字符串模式匹配方法
    match() 只接受一个参数,正则表达式或是RegExp对象 返回一个数组 text.match(pattern) == pattern.exec(text)
    search() 只接受一个参数,正则表达式或者RegExp对象 返回第一个匹配项的索引
    replace() 两个参数,第一个是RegExp对象,或者字符串(只替换第一个字符串),第二个参数是字符串或者函数,使用正则表达式全局模式匹配所有项
    第二个函数接收三个参数,模式匹配项,模式匹配项在字符串中的位置和原始字符串
    split() 基于指定的分隔符将一个字符串分割成多个子字符串,也可加收第二个参数指定数组的大小
  7)localeCompare()
    stringValue.localeCompare(),接收一个参数与原字符串做比较,返回其中一个值
    如果字符串在字母表中应该排在字符串参数之前,返回一个负数
    如果字符串在字母表中应该排在字符串参数之后,返回一个正数
    如果字符串在字母表中与字符串参数相同,返回0
  8)fromCharCode()
    接收一或多个字符编码,将他们转换成字符串
七,单体内置对象
不依赖宿主环境的对象,不必显示地实例化内置对象
1,Global对象
  1)URI编码方法
    对URI进行编码,用utf-8编码替换无效的字符
    encodeURI() 用于整个URI,不会对本身属于URI的特殊字符进行编码(:/ ? #),除了空格其他字符无变化
    encodeURIComponent() 用于URI的一部分,对任何非标准字符进行编码 替换所有的非字母数字字符
    相应的解码函数为:decodeURI() decodeURIComponent()
    取代了escape() 和 unescape() 两个函数
  2)eval()方法
    会将传人的参数当成js语句来解析,eval() 执行的代码包含在该次调用的执行环境的一部分,与该执行环境有相同的作用域链,可以包含环境中定义的变量
  3)Global对象的属性
    undefined NaN Infinity 等等都是global的属性
  4)window对象
2,Math对象
  1)Math对象的属性
    Math.E Math.LN10 Math.LN2 Math.LOG2E Math.LOG10E Math.PI Math.SQRT2 Math.SQRT1_2
  2)min()和max()
    确定一组数值中的最小值,最大值
  3)舍入方法
    Math.ceil() 向上取大取整
    Math.floor() 向下取小取整
    Math.round() 标准四舍五入
  4)random()方法
    返回0-1之间的随机数
    值 = Math.floor ( Math.random() * 可能值的总数 + 第一个可能的值 )
  5)其他方法

posted on 2014-03-19 09:19  哈哈李小博  阅读(114)  评论(0编辑  收藏  举报