Javascript 基础常用对象介绍
数组类型、Object类型、包装类型、Math对象、Date对象、Global对象、其他对象等的简单介绍,只是为了以后复习时候使用。
数组 类型( 栈 && 队列 )
1)var arr = new Array();括号中的长度可以不指定,原因就是js中的数组长度是可以动态改变的
2)类似于java中的list容器,长度可变(arr.length=num),元素类型任意。
3)arr.push( obj , obj , ..... ) ; 通过 push 可以往数组中添加任意多个元素; 类似栈中添加元素
4)arr.pop( ) ; 通过pop可以删除数组中最顶端的元素。类似栈中的删除元素
5)arr.unshift(obj , obj ,.. ) ;通过unshift可以往数组中添加任意多个元素,类似队列添加元素
6)arr.shift( ) ; 通过shift可以删除数组中最低端的元素。类似队列中删除元素
7)arr.splice(num1 , num2 , num3,..);num1表示数组起始位置,num2表示截取的个数(从数组中删除),num3以及后面的所有元素表示要添加到数组中作为新元素,最后就是数组既删除了元素同时又添加了新元素。
8)arr = arr.slice(num1 , num2 );左闭右关,表示从数组中获取从第二个到第四个元素返回
9)splice 操作数组本身,slice不操作数组本身,所以slice是不会改变原数组对象的。
10)arr = arr.concat( arr2 ); 数组元素合并,不操作数组本身,其返回元素为操作结果
11)arr = arr.join(‘ - ’);在每个元素之间加入参数内容,不操作数组本身
12)arr.sort( );对数组元素进行排序,默认是AES,内部比较规则是把元素转为字符串在比较。自定义比较规则是自定义函数,并且把函数的对象作为参数传入 sort(fun);如下 function fun(obj1 , obj2){ return 1 ; return 0 ; return -1}.
13)arr.reverse( );对数组元素进行转置。
14)var value = arr.indexOf( index ) ; var value = arr.indexOf(start , index ) 类似于 arr[index]
15)arr.lastIndexOf( index ) ; 与上面相同
16)arr.reduce(function(pre , cur , 【index , arr】 ){ }); 数组叠加,这个方法还是很简单使用的。
17)arr.reduceRight(function(pre , cur ,【 index , arr】 ){ }); 数组反向叠加,所以有了上面的方法这个方法基本没什么意义。
18)5种迭代数组的方法 funName(function(iteam , index ){});
every : 对于数组每一个元素进行一个函数的运行,如果函数运行有一次为false,则为false,否则为true
some : 对于数组每一个元素进行一个函数的运行,如果函数运行有一次为true,则为true,否则为false
filter : 对于数组每一个元素进行一个函数的运行,该函数执行过滤,把过滤后的结果返回。return true ;的保留
forEach:遍历数组中的每一个值,并且对该值进行(函数)处理。就是遍历对象,他并不返回结果值,除非使用引用型对象改变值。
map : 遍历数组中的每一个值,并且对该值进行(函数)处理,同时返回处理后的结果,他与filter的差异在于filter只返回满足过滤条件的值,而map则返回对每一个值处理后的结果,那么数组长度是不会发生改变的,而filter是会发生改变的。return iteam。
19)数组转对象,对象转数组,自己编写转换方法,实际上就是利用js特性,把数组中重复的值去掉。
Object 类型(类似java的 Object)
1)所有类的基础类,var obj = { } ;= new Object();(最好不要省掉小括号,格式要求)
2)自定义属性和方法,直接obj.name = ""; obj['sex'] = "" ; obj.fun= function(){};
3)删除属性和方法 , delete obj.name ; delete obj.fun;delete obj[name] ; 注意删除方法不需要括号
4)遍历js对象,for in 语法;for(var attribute in object){object[attribute] + attribute}
5)Object对象一定具有的方法:
1 obj . constructor ; 构造函数 ;不能用括号,因为括号表示获取函数的返回值,而不是调用函数本身对象
2 obj . hasOwnProperty('propertyName') ; 对象是否拥有属性
3 obj . isProtoTypeOf(obj2) ; 检测原型
4 obj . propertyIsEnumerable('propertyName') ; 检测属性是否能被枚举
5 obj . toLocaleString() 与本地语言有关的字符串表示
6 obj . toString() ; 对象转为字符串
7 obj . valueOf() ; 字符串表示对象 ,toLocalString()方法经常也会返回与toString()和valueOf()方法相同的值
6)重写 Object中的方法,只要 obj.funName = function(){ } ; 就是重写。
其他引用类型对象:
单体对象:不需要实例化对象就能使用对象 ;Global Math
Global对象
1)Global:无形的,全局的,终极的,最顶端的, 不存在的对象 。因为不存在所以是不可以实例化的,也就是不能用new,使用它时直接调用他的方法即可。Global 对象从不直接使用,并且不能用 new 运算符创建。它在 Scripting 引擎被初始化时创建,并立即使其方法和属性可用。
2)encodeURI(str);encodeURIComponent(str);以及对应的方法 decodeURI(str);decodeURIComponent(str);注意一般使用后两者,原因是前者只对url中的空格处理,而后者还会处理很多字符
3)eval(str),最厉害的方法,无形的javascript解析器;把一些字符串转为javascript中的脚本或对象。这个方法一般情况下是不会使用的,原因就是安全性,因为任何字符串代码都会被执行,除非你知道这个代码没有问题执行,使用这个方法注意三点:
A:eval(str);其中str一定是String类型,而不是Object类型,意思是传人的参数只能是原生的string类型,否则eval不做任何处理就把这个object返回给调用者。
B:eval(‘(’+objStr+')');这个方法的目的就是把一个字符串转为一个对象类型,这种格式是固定的,使用括号就是代码块的原因。objStr="{name:'dff',sex:'man'}" ; json对象
C:eval(‘ 5+10 ’);这种形式就是使用javascript解析执行str中的js代码,然后把结果返回,如果没有返回值则为undefiend。
4)parseInt(str);parseFloat(str);类型转换
5)escape(str) ; unescape(str); 加密;解密,这个与上面的encodeURI差不多,所以也没什么价值。
6)isNaN(obj);如果obj能够转为Numner类型则返回false,否则返回true;
7 ) isFinite( obj ) ; 判断对象是否是无限的。
Math对象
1)Math.funName(); 数学的基本运算
2)Math.random() ; 随机数的生成。返回一个0.0 和 1.0之间的一个伪随机数。
Date对象
1)var date = new Date();
2 ) var year = date.getFullYear();不要使用date.getYear();原因就是浏览器对这个方法处理不一样
3)如何把javascript中的date转为自己想要的格式,就是通过getXXX获取年月日时分秒,然后拼接字符串
4)getTime();通过这个时间差获取函数执行时间。
基本包装类型
1)Boolean String Number