1.object类型:创建对象方式 new object 和字面量的方式。对象访问属性方式点和[],[]可以访问属性中有特殊字符的属性 例如 person[helleo name] 而点是不可以的;
2.Array类型:数组创建方式 new array ,[] 或者 Array();数组的长度是可变的 比如 array.length = 3这样不仅可以缩短数组还可以增加数组长度 ;如果数组访问的下标越界 不会报错则输出undefined;
检测数组 可以使用 instanceof方法 ,isArray(),object.prototype.tostring.call(),array.constractor等方式;数组的tostring 和valueof方法 返回的是数组列表值的字符串;
数组的tolocalstring和tostring的不同之处是 tolocalstring是调用数组每一项的tolocalstring 而不是tostring;
数组栈和队列的操作方法,push pop unshift shift;push和unshift可以接受任意数量的参数;
数组的重新排序方法:sort reverse sort默认将数组的每一项转化为字符串进行比较所以数组的值为数值类型的时候用sort比较可能导致得不到想要的排序结果,sort内部原理采用的是冒泡排序,sort可以接受比较函数,根据负数 0 正数来排序 ; reverse是将数组倒序;
数组的操作方法:contact 可以接收 单个字符 或者数组参数,参数可以有任意个;contact不会改变原有数组只会返回新的操作后的数组;
slice方法:截取数组,最多接收两个参数 分别是start和end的数值 也可以是负数;slice不会影响原数组;
splice方法:可以删除 替换 插入 ;splice()第一个参数表示位置,第二个表示长度;删除:splice(0,2);替换:splice(0,2,'替换'....);插入:splice(2,0,'插入'.....);splice会影响原数组,会改变原数组的值。
indexof与lastindexof;indexof 是从数组的开头开始查找,lastindexof是从数组的结尾开始查找,两个方法的第一个参数表示要索引的值,第二个参数表示从哪个位置开始索引,位置值可以是负数。
数组的迭代方法:
1.every:对数组的每一项运行给定的函数,如果任何一项判断结果必须都为true 才会返回true;
new array().every(function(iten,index,array){ return true})
2.filter:对数组的每一项运行制定的函数,返回该函数为true的项;
new array().filter(function(item,index,array){return item>0;return item})
3.forEach: 对数组运行指定的函数 该函数不会返回任何值;
new array().foreach(function(item,index,array){})
4.map:对数组运行指定的函数 返回函数每次返回的结果组成的数组;
new array().map(function(item,index,array){return})
5.some:运行指定的数组 只要函数有一项结果返回true 则返回true;
6.reduce:new array().reduce(function(total,current,index,array){return total},init);这个函数返回的任何值都会作为第一个参数自动传递给下一项;第一个参数的起始值是函数的第一项;如果设置了init这个参数 第一个参数的起始值位init;
7.reduceright:是从数组的右侧开始;
Date:new Date(); date.prase():因不同的浏览器实现以及地区设置接受的参数也是不一样的 返回的结果都是毫秒数
RegExp: 字面量创建var expression = /partern/flag flag:i表示不区分大小写,g表示全局搜索,m:表示多行匹配;
方法创建:var expression = new RegExp('',flag);
实例属性:
例如:var expression = new RegExp或者/patern/flag;expression.global;expression.ignoreCase;
字面量和构造函数的属性是相同的;
实例方法
exec():返回数组,并包含index属性和input属性;index表示匹配的位置;input表示匹配的字符串;
数组的第一项表示的是整个正则表达式匹配的字符串,其他项是与模式中的捕获组匹配的字符串;如果没有捕获组则返回第一项;例如
对于exec方法而言 多次调用知乎返回一个匹配项即使设置了全局;设置了全局搜索 每次执行都会返回下一项的匹配值;
构造函数RegExp()的实例属性:
Function类型:
函数没有重载;只会覆盖;
函数声明与函数表达式;函数声明与表达式并非相同;函数声明在解析阶段会提升至作用域顶部;而表达式不会;也可以使用函数表达式和函数声明;例如 var sun = function sun(){};这种语法在safri中会报错;
函数内部属性:this与argments ;arguments是一个类数组;保存着函数的参数;这个对象还有一个属性callee,代表着指向函数的指针;callee也有个属性 caller,代表着当前调用函数的函数的引用;
函数的属性和方法:prototype和length;length表示函数接收的参数个数;prototype保存着继承来的对象;
apply和call是函数的两个方法;这两个方法都是在特定的作用域调用函数;实际上是设置函数的this值;
基本包装类型
通过 Number,Blooean和String可以创建基本类型的实例;基本类型调用引用类型的方法时候会自动转换成引用类型;引用类型与基本类型的主要区别是对象的生存周期;基本类型是用完就会销毁而引用类型则是只要引用保持着则不会销毁;引用类型的typeof结果是object;而基本类型不是;
Boolean:var flag = new Boolean(true);Boolean类型重写了valueof 返回得是基本类型值false和true;
重写了tostring方法 返回的是true和false的字符串;
Number:var num = new Number();也重写了valueof tostring方法 tosting可以根据传入的进制数返回对应的进制结果;num的tofixed方法 返回的是保留几位小数后的字符串;
String: var str = new String();实例属性length返回的是长度;
字符方法:charat 和charcodat;都接受一个参数 charat返回指定位置的单个字符 而charcodeat返回的是指定字符的字符编码;
字符操作方法:contact;slice;substr;substring;都不会修改字符本身;
slice:接收两个位置参数;第一个代表开始位置;第二个代表结束位置;参数为负数;slice会将参数的负数加上字符的长度得到位置;(参数加上负数后还是负数则转换成0)
subtring:第一个参数代表起始位置;第二个参数代表结束位置;会将所有的负数全部转换成0;
substr:第一个参数代表起始位置;第二个代表长度;如果是负数;会将第一个参数是负数加上字符的长度;第二个参数是负数转换成0;(参数加上负数后还是负数则转换成0);
字符串位置方法:
indexof与lastindexof:接收两个参数;第一个代表索引的值;第二个代表索引起始位置;
trim:去除前后空格;
字符串转大小写方法
字符串模式匹配方法:match与exec基本相同;search;replace都是模式方法;
split:接收两个方法 第一个分隔符;第二个分隔后的长度;
字符串比较方法:localeCompare;返回值1,0,-1;区分大小写;大写在小写前面;
fromcharcode:将编码转换成字符串;
global对象:
全局对象 是一个特别的对象;兜底对象;最基本的对象;基本上全局作用域定义的属性和方法都是它的属性;
uri编码:encodeuri:不对uri本身的特殊字符编码;例如冒号 正斜杠 问号和#号;
encodecompoent:对非标准字符都编码;
global对象的属性:
Math对象:
常用的方法:
max和min:接收多个参数;返回最大或者最小的数;
舍入方法:ceil:向上舍入;floor:向下舍入;round:标准舍入
random:随机数 返回0-1之间的数;不包括0和1;
随机数:
来源:oschina
链接:https://my.oschina.net/u/3198493/blog/1629003