现在的位置: 首页 > web前端 > 正文

JavaScript笔记三:引用类型

2019年11月03日 web前端 ⁄ 共 2586字 ⁄ 字号 评论关闭

1、Object对象

   创建Object对象,

   var person = new Object();     var person = {

   Person.name = “guoliang”;        name : “guoliang”,

   Person.age = 20;                age : 20

                              };

 另外属性名也可以使用字符串,,第二种属于对象字面量表示法

 访问对象属性可以使用”.”或“[ ]”,当属性名包含非字母和非数字时只能使用”[ ]”访问。一般建议使用“.”。

2、Array类型

   JavaScript中的数组与其他的语言不同,它可以保存人任何类型的数据,而且它的大小时动态可变的,会随着数据的增加自动增长。

   var color = new Array(); //创建color数组

   或var color=[];

   var color = new Array(20); //创建长度为20的数组

   var color = new Array(“red”,”blue”,”green”);

   或 var color= [“red”,”blue”,”green”];

   new可以不带,结果相同

  使用length可以得到数组的长度,但是不仅仅可以只读,length还可以移除数组项或在末尾增加新项。并且如果设置的值超过当前数组大小的位置时,数组会重新计算长度值,即长度等于最后一项的索引值加1。

   Array.isArray();可以判断值是不是为数组。

   push和pop 可以对数组末尾进行进栈和出栈的操作,而push (末端)和shift (前端)则可以实现进队和出队的操作。unshift(前端)和pop(末端)进队和出队。

   排序:reverse()和sort();它们比较的是字符串,但sort()在比较时会出现5>10的现象,因此要使用sort(compare(比较函数));

   function compare(value1,value2) {

      return value2-value1;   //升序

   }

 concat(); //连接数组

 slice();//得到数组中的值

 splice();//删除/插入/替换

 index();//从前往后

 lastIndex();//从后向前

 every();filter();forEach();map();some();//迭代方法

 reduce(); reduceRight();//缩小方法

3、Data类型

   自UTC 1970年1月1日午夜(零时)起的毫秒数保存的日期。

   Data.parse(); Data.UTC();Data.now();

toDataString();toTimeString();toLocalDataString();toLocalTimeString();toUTCString();

4、RegExp类型

   ECMAScript通过RegExp类型来支持正则表达式。

   var expression = / pattern / flags;

   模式(pattern)可以使任意的简单或复杂的正则表达式 ,标志(flags)用来标志正则表达式的行为(g:全局;i:不区分大小写 ;m:多行模式)。

   exec();专门为捕获数组设计,接收应用模式的字符串,返回第一个匹配项信息的数组;index返回位置,input返回字符串。

   test();判断模式与该参数是否匹配,正则表达式的valueof() 方法返回正则表达式本身

5、Function 类型

   function sum(num1,num2){

      return num1+num2;

   }//可以使用 varanothersum=sum;此时anothersum和sum一样

   var sum = function(num1,num2){

      return num1+num2;

   };//有分号

   alert(sum(10,10));

   unction sum(num1,num2){

      return num1+num2;

   }//如上,代码在执行之前其实已经将函数声明提升至执行环境顶部,所以即使在执行代码后面也没问题。但是函数表达式就不能了。

   alert(sum(10,10));

   var sum = function(num1,num2){

      return num1+num2;

   };//会在运行期间发生错误

   作为值的函数

   function callSomeFunction(someFunction,someArgument){

       return someFunction(someArgument) ;

  }//即一个函数可以作为另一个函数的值,也可以一个函数返回另一个函数的值

函数的内部属性:arguments和this

 使用arguments.callee可以解除函数体内的代码与函数名的耦合,不再依赖于单一的函数名。

函数的属性和方法:length(函数希望接收的参数的个数)和prototype(保存所有实例方法所在)

apply();call();特定的作用域中调用函数,实际上等于社会自函数体内this的值。两者仅仅区别在接收参数的方式不同。

    function sum(num1,num2){

      feturn num1+num2;

}

    function sum(num1,num2){

      return sum.apply(this,arguments);

      //return sum.call(this,num1,num2);

 

}//他们最大的好处是扩充函数赖以运行的作用域,对象不需要与方法有任何耦合关系。bind()还可以绑定运行域。

6、基本包装类型

   Boolean、Number、String引用类型但同时也具有基本类型的行为。当它作为一个引用类型存在时只在当行代码期间,执行完后,会自动销毁。

7、单体内置对象

   由ECMAScript实现提供的、不依赖于宿主环境的对象,这些对象在ECMAScript好吃呢过徐执行之前就已经存在了。开发人员不必显式的实例化内置对象,因为他们已经实例化了。除了说过的Object、Array、String还有Global和Math.

  

 

 

 

抱歉!评论已关闭.