JavaScript其他引用类型介绍

在结束了Array类型学习后小编在之后又接触了几种引用类型,但有很大一部分都跟之前自己在学习java时相同,所以今天归类到一个博客里面来介绍一下。

1.Data类型

在实际操作中这些方法都是定死了的相关方法很多,这边不一一介绍。归类详细所以还是在这边开了一栏。

 

2.RegExp类型

在接触这个类型时我们先要明确正则表达式的概念。在实际运用中我们用该类型方法来索引字符串中的东西,起到索引作用,在这边小编对于此类方法理解不是那么深,先介绍一个最简单的实例来方便理解。

例:

var text="cat,bat,sat,fat";

var part=/.at/              //创建RegExp值=后面为正则表达式 .at代表以at结尾

//  var part=/.at/g   如果是这样的话那么就是在全局中搜索就不会只返回一个元素

var matches = part.exec(text);

alert(matches[0]);     //输出为cat 

exec方法为捕获方法

在这种情况下方法返回matches为数组,这时候数组会多两个属性(index:表示匹配项在字符串中的位置  input:表示应用正则表达式的字符串)

3.Function类型

很熟悉的一个类型,创建函数,运用方法之前博客也有提到。这边主要是介绍一下与之前java理解的函数区分。

1.首先没有重载:

同名函数会按顺序覆盖之前与自己相同方法名的函数

2.函数本身就是变量,可作为函数值来使用。

我们可以将定义好的函数直接赋值给变量,变量传递参数进去可以直接使用。不止是局限于此,根据2标题所给的话能实现变量所有的功能以及运用。

3.递归用法的完善

递归用法最常见无疑是将函数本身放入函数中,先举上一个递归例子方便之后说

例:

function factorial(num){
    if(num<=1){

    return 1; 
   
   }
    if(num>1){
     
      return num*factorial(num-1);
    }
}

这是我们最常见的阶乘递归:

那么我们想一下按照之前所说函数为变量,我现在将factorial函数定义一个  var a=factorial;

再将a函数传递进去还能实现递归么。当然不行,在我们调用a时但他内部还是factorial函数。

那么我们只需要将内部递归处改为:

function factorial(num){
    if(num<=1){

    return 1; 
   
   }
    if(num>1){
     
      return num * arguments.callee(num-1);
    }
}

这样就不会像之前那样。

4.函数属性和方法

函数自身有一个length属性,使用时返回值为函数参数个数。

两个非继承方法apply()、call(),这两种方法前一个参数为作用域,后一个参数为传递给函数的参数。

这两种方法就是扩充函数作用域,举一个很简单的案例(就不以代码描述了),给定一个windows.color属性,定义一个Object属性值同样给定一个color属性,在一个函数中返回this.color,输出函数的话那么输出为windows的color,但将函数用call方法将定义的Object值放进去时this所指就为该Object属性值。

4.基本的几个包装类型

于java中基本一致。

猜你喜欢

转载自blog.csdn.net/qq_40833779/article/details/83147480
今日推荐