为什么赋值运算符要返回引用?

为什么赋值运算符要返回引用??

因为赋值操作会改变左值,而 + 之类的运算符不会改变操作数,所以说赋值运算符重载要返回引用以用于类似 (a=b)=c 这样的再次对a=b进行写操作的表达式。+ 返回一个临时对象是合情合理的 ,你若返回引用大多数情况下也不会出错或导致某个操作数被意外修改,但这就使(a+b)=c这样的表达式可以出现,这就有点不符合约定了,当然,你也可以让 + 返回一个常引用。 



 在面向对象程序设计中,对象间的相互拷贝和赋值是经常进行的操作。
    如果对象在申明的同时马上进行的初始化操作,则称之为拷贝运算。例如:
        class1 A("af"); class1 B=A;
     此时其实际调用的是B(A)这样的浅拷贝操作。
    如果对象在申明之后,在进行的赋值运算,我们称之为赋值运算。例如:
        class1 A("af"); class1 B;
        B=A;
        此时实际调用的类的缺省赋值函数B.operator=(A);


下面介绍类的赋值运算符
1.C++中对象的内存分配方式
        在C++中,对象的实例在编译的时候,就需要为其分配内存大小,因此,系统都是在stack上为其分配内存的。这一点和C#完全不同!千万记住:在C#中,所有类都是reference type,要创建类的实体,必须通过new在heap上为其分配空间,同时返回在stack上指向其地址的reference.
        因此,在C++中,只要申明该实例,在程序编译后,就要为其分配相应的内存空间,至于实体内的各个域的值,就由其构造函数决定了。
    例如:
    
class A
{
public:
    A()
    {
    }
    A(int id,char *t_name)
    {
    _id=id;
    name=new char[strlen(t_name)+1];
    strcpy(name,t_name);
    }
    private:
        char *username;
        int _id;
}

int main()
{
A a(1,"herengang");
A b;
}

在程序编译之后,a和b在stack上都被分配相应的内存大小。只不过对象a的域都被初始化,而b则都为随机值。
其内存分配如下:


2. 缺省情况下的赋值运算符
    如果我们执行以下:
    b=a;
        则其执行的是缺省定义的缺省的赋值运算。所谓缺省的赋值运算,是指对象中的所有位于stack中的域,进行相应的复制。但是,如果对象有位于heap上的域的话,其不会为拷贝对象分配heap上的空间,而只是指向相同的heap上的同一个地址。
        执行b=a这样的缺省的赋值运算后,其内存分配如下:


   因此,对于缺省的赋值运算,如果对象域内没有heap上的空间,其不会产生任何问题。但是,如果对象域内需要申请heap上的空间,那么在析构对象的时候,就会连续两次释放heap上的同一块内存区域,从而导致异常。
    ~A()
    
{        
        delete name;
    }

3.解决办法--重载(overload)赋值运算符
        因此,对于对象的域在heap上分配内存的情况,我们必须重载赋值运算符。当对象间进行拷贝的时候,我们必须让不同对象的成员域指向其不同的heap地址--如果成员域属于heap的话。    
因此,重载赋值运算符后的代码如下:
class A
{
public:

    A()
    
{
    }

    A(
int id,char *t_name)
    
{
        _id
=id;
        name
=new char[strlen(t_name)+1];
        strcpy(name,t_name);
    }

    
    A
& operator =(A& a)
//注意:此处一定要返回对象的引用,否则返回后其值立即消失!
    
{
            if(name!=NULL)
                delete name;
        
this->_id=a._id;
        
int len=strlen(a.name);
        name
=new char[len+1];
        strcpy(name,a.name);
        
return *this;
    }


    
~A()
    
{
        cout
<<"~destructor"<<endl;
        delete name;
    }


    
int _id;
    
char *name;
}
;

int main()
{
 A a(1,"herengang");
 A b;
 b=a;

}

其内存分配如下:



这样,在对象a,b退出相应的作用域,其调用相应的析构函数,然后释放分别属于不同heap空间的内存,程序正常结束。





references:
类的深拷贝函数的重载
    public class A
{
    public:
        ...
        A(A &a);//重载拷贝函数
        A& operator=(A &b);//重载赋值函数
        //或者 我们也可以这样重载赋值运算符 void operator=(A &a);即不返回任何值。如果这样的话,他将不支持客户代买中的链式赋值 ,例如a=b=c will be prohibited!
    private:
        int _id;
        char *username;
}

A::A(A &a)
{
    _id=a._id;
    username=new char[strlen(a.username)+1];
    if(username!=NULL)
        strcpy(username,a.usernam);
}

A& A::operaton=(A &a)
{
        if(this==&a)//  问:什么需要判断这个条件?(不是必须,只是优化而已)。答案:提示:考虑a=a这样的操作。
            return *this;
        if(username!=NULL)
            delete username;
        _id=a._id;
        username=new char[strlen(a.username)+1];
        if(username!=NULL)
            strcpy(username,a.usernam);
        return *this;    
}
//另外一种写法:
void A::operation=(A &a)
{
        if(username!=NULL)
            delete username;
        _id=a._id;
        username=new char[strlen(a.username)+1];
        if(username!=NULL)
            strcpy(username,a.usernam);
}

其实,从上可以看出,赋值运算符和拷贝函数很相似。只不过赋值函数最好有返回值(进行链式赋值),返回也最好是对象的引用(为什么不是对象本身呢?note2有讲解), 而拷贝函数不需要返回任何同时,赋值函数首先要释放掉对象自身的堆空间(如果需要的话),然后进行其他的operation.而拷贝函数不需要如此,因为对象此时还没有分配堆空间。



note1:
    不要按值向函数传递对象。如果对象有内部指针指向动态分配的堆内存,丝毫不要考虑把对象按值传递给函数,要按引用传递。并记住:若函数不能改变参数对象的状态和目标对象的状态,则要使用const修饰符 

note2:问题:
 
    对于类的成员需要动态申请堆空间的类的对象,大家都知道,我们都最好要overload其赋值函数和拷贝函数。拷贝构造函数是没有任何返回类型 的,这点毋庸置疑。 而赋值函数可以返回多种类型,例如以上讲的void,类本身class1,以及类的引用 class &? 问,这几种赋值函数的返回各有什么异同?
    答:1 如果赋值函数返回的是void ,我们知道,其唯一一点需要注意的是,其不支持链式赋值运算,即a=b=c这样是不允许的!
          2 对于返回的是类对象本身,还是类对象的引用,其有着本质的区别!
              第一:如果其返回的是类对象本身
   A operator =(A& a)
    
{
            if(name!=NULL)
                delete name;
        
this->_id=a._id;
        
int len=strlen(a.name);
       name
=new char[len+1];
        strcpy(name,a.name);
        
return *this;
    }

          其过程是这样的:
                       class1 A("herengnag");
                        class1 B;   
                        B=A;
                    看似简单的赋值操作,其所有的过程如下:
                       1 释放对象原来的堆资源
                       2 重新申请堆空间
                       3 拷贝源的值到对象的堆空间的值
                       4 创建临时对象(调用临时对象拷贝构造函数),将临时对象返回
                       
5. 临时对象结束,调用临时对象析构函数,释放临时对象堆内存
my god,还真复杂!!
            但是,在这些步骤里面,如果第4步,我们没有overload 拷贝函数,也就是没有进行深拷贝。那么在进行第5步释放临时对象的heap 空间时,将释放掉的是和目标对象同一块的heap空间。这样当目标对象B作用域结束调用析构函数时,就会产生错误!!
            因此,如果赋值运算符返回的是类对象本身,那么一定要overload 类的拷贝函数(进行深拷贝)!
            第二:如果赋值运算符返回的是对象的引用,
   A& operator =(A& a)
    
{
            if(name!=NULL)
                delete name;
        
this->_id=a._id;
        
int len=strlen(a.name);
       name
=new char[len+1];
        strcpy(name,a.name);
        
return *this;
    }

        那么其过程如下:
                   1 释放掉原来对象所占有的堆空间
                   1.申请一块新的堆内存
                   2 将源对象的堆内存的值copy给新的堆内存
                   3 返回源对象的引用
                    4 结束。
    因此,如果赋值运算符返回的是对象引用,那么其不会调用类的拷贝构造函数,这是问题的关键所在!!
 
完整代码如下:
//  virtual.cpp : Defines the entry point for the console application.
//

#include 
" stdafx.h "
#include 
" string.h "
#include 
" stdlib.h "
#include 
" assert.h "

class  complex
{
public:
        
int real;
        
int virt;
public:
    complex()
{real=virt=0;}
    complex(
int treal,int tvirt){real=treal;virt=tvirt;}
    complex 
operator+(const complex &x)
    
{
        real
+=x.real;
        virt
+=x.virt;
        
return *this;
    }

    complex 
operator=(const complex &x)
    
{
        
return complex(x.real,x.virt);
    }

}
;


class  A
{
public:
    A()
{m_username=NULL;printf("null constructor");}
    A(
char *username)
    
{
        
int len;
        len
=strlen(username);
        m_username
=new char[len+1];//(char*)malloc(sizeof(len+1));
        strcpy(m_username,username);
        printf(
"\nUsername is %s\n",m_username);
    }

    
    A(A 
&a);
    A 
operator=(A &b);
    
int test(const int &x)
    
{
        
return x;
    }


    
virtual ~A()
    
{
    
//    if(m_username)
        {
        delete m_username;
        printf(
"\nA is destructed\n");
        }

    }




protected:
    
char *m_username;

}
;



A::A(A 
& a)
{

    
int len=strlen(a.m_username);
    
this->m_username=new char[len+2];
    strcpy(m_username,a.m_username);
    strcat(m_username,
"f");
    printf(
"\ndeep copy function");
}



A A::
operator = (A  & b)
{
    
if(m_username)
        delete m_username;

    
int len=strlen(b.m_username);
    
this->m_username=new char[len+1];
    strcpy(m_username,b.m_username);
//    printf("copied successfully!");
     return *this;
}


 

class  B: public  A
{
public:
    B(
char *username,char *password):A(username)
    
{
        
int len=strlen(password)+1;
        m_password
=new char[len];//(char *)malloc(sizeof(len));
        strcpy(m_password,password);
        printf(
"username:%s,password:%s\n",m_username,m_password);
    }

    
~B()
    
{
        delete m_password;
        printf(
"B is destructed\n");
    }

protected:
    
char *m_password;
}
;

int  main( int  argc,  char *  argv[])
{
//    B b("herengang","982135");
//    A *a=&b;
//    delete a;
    A a("haha");
    A b;

    printf(
"\nbegin to invoke copy function");
    b
=a;

//    printf("%d",b.test(2));
    
//complex x(1,3),y(1,4);
    
//x=(x+y);
    
//printf("%d,%d",x.real,x.virt);
    return 0;


}


1 重载赋值运算符返回结果为类对象的运行结果






明显, 运算符最后调用了拷贝构造函数

2 重载赋值运算符返回结果为类对象引用的运行结果





很明显,没有调用拷贝构造函数
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
javascript的官方文档 这些方便实用的信息将帮助您了解 JScript 的各个部分。 在“字母顺序的关键字列表”中,可以找到按字母顺序列出的所有 JScript 语言的主题。如果只需要查看某个主题(例如对象),则有对该主题进行详细说明的章节可供查阅。 如何操作呢?单击左边任意一个标题,即可显示该标题所包含的项目列表。再从该列表中选择要查看的主题。在打开所选主题后,就可以方便地链接到相关章节。 请尽情浏览 JScript 语言参考的各个部分,你会发现 JScript 语言有多么丰富。 特性 描述 JScript 特性(非-ECMA) JScript 目前的 ECMA 特性列表。 JScript 的特性 (ECMA) JScript 目前的非-ECMA 特性列表。 Microsoft Scripting 运行时特性 JScript 目前的 scripting 运行时特性列表。 语言元素 描述 ! 运算符 对表达式进行逻辑非运算。 != 运算符 比较两个表达式的值是否相等。 !== 运算符 比较两个表达式的值,看其值是否相等或数据类型是否一致。 0...n 属性 返回单个参数的实际值,该参数来自由当前运行函数的参数属性返回的参数对象。 $1...$9 属性 返回在模式匹配中找到的最近的九条记录。 % 运算符 两个表达式的值相除,返回余数。 %= 运算符 用变量的值除以表达式的值,余数赋给变量。 & 运算符 对两个表达式执行按位“与”运算。 &= 运算符 对变量和表达式执行按位“与”运算,结果赋给变量。 && 运算符 对两个表达式执行逻辑连接运算。 * 运算符 将两个表达式的值相乘。 *= 运算符 将变量与表达式的值相乘,结果赋给变量。 + 运算符 将两个数字表达式的值相加,或连接两个字符串。 ++ 运算符 变量值加 1。 += 运算符 将表达式的值加到变量中。 , 运算符 使两个表达式按顺序执行。 - 运算符 从一个表达式中减去另一个表达式的值,或对单个表达式取反。 -- 运算符 变量值减 1。 -= 运算符 变量值减去表达式的值,结果赋给变量。 / 运算符 两个表达式的值相除。 /*..*/ (多行注释语句) 使 JScript 语法分析器忽略多行注释。 // (单行注释语句) 使 JScript 语法分析器忽略单行注释。 /= 运算符 变量值除以表达式的值,结果赋给变量。 < 运算符 比较一个表达式的值是否小于另一个表达式。 << 运算符 将表达式向左移位。 <<= 运算符 将变量的值左移由表达式指定的位数,结果赋给变量。 <= 运算符 比较一个表达式的值是否小于等于另一个表达式。 = 运算符 为变量赋值。 == 运算符 比较两个表达式是否相等。 === 运算符 比较两个表达式,看其值是否相等或数据类型是否一致。 > 运算符 比较一个表达式的值是否大于另一个表达式。 >= 运算符 比较一个表达式的值是否大于等于另一个表达式。 >> 运算符 将表达式向左移位,符号位不变。 >>= 运算符 将变量的值右移由表达式指定的位数,符号位不变,结果赋给变量。 >>> 运算符 将表达式向左移位,包括符号位。 >>>= 运算符 将变量的值右移由表达式指定的位数,包括符号位,结果赋给变量。 ?: 运算符 根据条件执行其中一个语句。 ~ 运算符 对表达式执行按位“非”(取反)运算。 | 运算符 对两个表达式执行按位“或”运算。 |= 运算符 对变量和表达式的值执行按位“或”运算,结果赋给变量。 || 运算符 对两个表达式执行逻辑或运算。 ^ 运算符 对两个表达式执行异或运算。 ^= 运算符 对变量和表达式的值执行按位异或运算,结果赋给变量。 @cc_on 语句 激活条件编译支持。 @if 语句 根据表达式的值,有条件地执行一组语句。 @set 语句 创建用于条件编译语句的变量。 abs 方法 返回一个数的绝对值。 acos 方法 返回一个数的反余弦。 ActiveXObject 对象 启用并返回一个 Automation 对象的引用。 加法运算符 (+) 将两个数字表达式的值相加,或连接两个字符串。 anchor 方法 在对象的指定文本两端加上一个带 NAME 属性的 HTML 锚点。 apply 方法 应用对象的一个方法,用当前对象代替另一对象。 arguments 属性 返回一个包含传递给当前执行函数的每个参数的数组。 Array 对象 提供对创建任何数据类型的数组的支持。 asin 方法 返回一个数的反正弦。 赋值运算符 (=) 将一个值赋给变量。 atan 方法 返回一个数的反正切。 atan2 方法 返回从 X 轴到点 (y, x)的角度(以弧度为单位)。 atEnd 方法 返回一个指示枚举算子是否处于集合结束处的 Boolean 值。 big 方法 在String 对象的文本两端加入 HTML 的<BIG>标识。 按位与运算符 (&) 对两个表达式执行按位与操作。 按位左移运算符(<<) 将一个表达式的各位向左移。 按位取非运算符 对一个表达式执行按位取非(求非)操作。 按位或运算符 (|) 对两个表达式指定按位或操作。 按位右移运算符 (>>) 将一个表达式的各位向右移,保持符号不变。 按位异或运算符(^) 对两个表达式执行按位异或操作。 blink 方法 将 HTML 的 <BLINK> 标识添加到 String 对象中的文本两端。 bold 方法 将 HTML 的 <B> 标识添加到String 对象中的文本两端。 Boolean 对象 创建一个新的 Boolean 值。 break 语句 终止当前循环,或者如果与一个label 语句关联,则终止相关联的语句。 call 方法 应用对象的一个方法,用当前对象代替另一对象。 callee 属性 返回正执行的函数对象,它是指定的函数对象的文本正文。 caller 属性 返回调用当前函数函数引用。 catch 语句 包含在 try 语句块中的代码发生错误时执行的语句。 ceil 方法 返回大于或等于其数值参数的最小整数。 charAt 方法 返回位于指定索引位置的字符。 charCodeAt 方法 返回指定字符的 Unicode 编码。 逗号运算符 (,) 使两个表达式连续执行。 /*..*/ (多行注释语句) 使多行注释部分被 JScript 语法分析器忽略。 注释语句 - 单行(//) 使 JScript 语法分析器忽略单行注释。 比较运算符 返回一个显示比较结果的 Boolean 值。 compile 方法 将一个正则表达式编译为内部格式。 复合赋值运算符 复合赋值运算符列表。 concat 方法 (Array) 返回一个由两个数组合并组成的新数组。 concat 方法 (String) 返回一个包含给定的两个字符串连接的String 对象。 条件(三元)运算符 (?:) 根据条件执行两个表达式之一。 constructor 属性 指定创建对象的函数。 continue 语句 停止循环的当前迭代,并开始一次新的迭代。 cos 方法 返回一个数的余弦。 Date 对象 提供日期和时间的基本存储和检索。 decodeURI 方法 返回一个已编码的通用资源标识符 (URI) 的解码版。 decodeURIComponent 方法 返回一个已编码的通用资源标识符 (URI) 组件的解码版。 递减运算符(--) 将变量减一。 delete 运算符 删除对象的属性,或删除数组中的一个元素。 description 属性 返回或设置关于指定错误的描述字符串。 Dictionary 对象 存储数据键、项目对的对象。 dimensions 方法 返回 VBArray 的维数。 除法运算符 (/) 对两个表达式执行除法运算。 do...while 语句 先执行一次语句块,然后重复执行该循环,直至条件表达式的值为 false。 E 属性 返回 Euler 常数,即自然对数的底。 encodeURI 方法 将文本字符串编码为合法的通用资源标识符 (URI)。 encodeURIComponent 方法 将文本字符串编码为合法的通用资源标识符 (URI)组件。 Enumerator 对象 提供集合中的项的枚举。 相等运算符(==) 比较两个表达式,看是否相等。 Error 对象 包含在运行 JScript 代码时发生错误信息的对象。 escape 方法 对 String 对象编码,以便在所有计算机上都能阅读。 eval 方法 对 JScript 代码求值然后执行。 exec 方法 在指定字符串中执行一个匹配查找。 exp 方法 返回 e (自然对数的底) 的幂。 FileSystemObject 对象 提供对计算机文件系统的访问。 fixed 方法 将 HTML 的<TT> 标识添加到String 对象中的文本两端。 floor 方法 返回小于或等于其数值参数的最大整数。 fontcolor 方法 将 HTML 带 COLOR 属性的 <FONT> 标识添加到 String 对象中的文本两端。 fontsize 方法 将 HTML 带 SIZE 属性的 <FONT> 标识添加到 String 对象中的文本两端。 for 语句 只要指定的条件为 true,就一直执行语句块。 for...in 语句t 对应于对象或数组中的每个元素执行一个或多个语句。 fromCharCode 方法 返回 Unicode 字符值的字符串。 Function 对象 创建一个新的函数。 function 语句 声明一个新的函数。 getDate 方法 使用当地时间返回 Date 对象的月份日期值。 getDay 方法 使用当地时间返回 Date 对象的星期几。 getFullYear 方法 使用当地时间返回 Date 对象的年份。 getHours 方法 使用当地时间返回 Date 对象的小时值。 getItem 方法 返回指定位置的项。 getMilliseconds 方法 使用当地时间返回 Date 对象的毫秒值。 getMinutes 方法 使用当地时间返回 Date 对象的分钟值。 getMonth 方法 使用当地时间返回 Date 对象的月份。 GetObject 函数 返回文件中的 Automation 对象的引用。 getSeconds 方法 使用当地时间返回 Date 对象的秒数。 getTime 方法 返回 Date 对象中的时间值。 getTimezoneOffset 方法 返回主机的时间和全球标准时间(UTC)之间的差(以分钟为单位)。 getUTCDate 方法 使用全球标准时间(UTC)返回 Date 对象的日期值。 getUTCDay 方法 使用全球标准时间(UTC)返回 Date 对象的星期几的值。 getUTCFullYear 方法 使用全球标准时间(UTC)返回 Date 对象的年份。 getUTCHours 方法 使用全球标准时间(UTC)返回Date 对象的小时数。 getUTCMilliseconds 方法 使用全球标准时间(UTC)返回Date 对象的毫秒数。 getUTCMinutes 方法 使用全球标准时间(UTC)返回 Date 对象的分钟数。 getUTCMonth 方法 使用全球标准时间(UTC)返回 Date 对象的月份值。 getUTCSeconds 方法 使用全球标准时间 (UTC) 返回 Date 对象的秒数。 getVarDate 方法 返回 Date 对象中的 VT_DATE。 getYear 方法 返回 Date 对象中的年份。 Global 对象 是一个固有对象,目的是将全局方法集中在一个对象中。 global 属性 返回一个 Boolean 值,标记正则表达式使用的 global 标志状态 (g)。 大于运算符(>) 比较两个表达式,看一个是否大于另一个。 大于相等运算符(>=) 比较两个表达式,看一个是否大于等于另一个。 hasOwnProperty 方法 返回一个 Boolean 值,标记对象是否带有指定名称的属性。 恒等运算符 (===) 比较两个表达式,看是否值相等并具有相同的数据类型。 if...else 语句 根据表达式的值,有条件地执行一组语句。 ignoreCase 属性 返回一个 Boolean 值,标记正则表达式使用的 ignoreCase 标志状态 (i)。 递增运算符(++) 给变量加一。 index 属性 返回在字符串中找到的第一个成功匹配的字符位置。 indexOf 方法 返回在 String 对象中第一次出现子字符串的字符位置。 不相等运算符 (!=) 比较两个表达式,看是否不相等。 Infinity 属性 返回 Number.POSITIVE_INFINITY 的初始值。 input 属性 返回进行查找的字符串。 instanceof 运算符 返回一个 Boolean 值,表明某个对象是否为特定类的一个实例。 isFinite 方法 返回一个 Boolean 值,表明某个给定的数是否是有穷的。 isNaN 方法 返回一个 Boolean 值,表明某个值是否为保留值 NaN(不是一个数)。 isPrototypeOf 方法 返回一个 Boolean 值,表明对象是否存在与另一对象的原型链中。 italics 方法 将 HTML的 <I> 标识添加到 String 对象中的文本两端。 item 方法 返回集合中的当前项。 join 方法 返回一个由数组中的所有元素连接在一起的 String 对象。 Labeled 语句 给语句提供一个标识符。 lastIndex 属性 返回在字符串中找到的最后一个成功匹配的字符位置。 lastIndexOf 方法 返回在 String 对象中最后出现子字符串的位置。 lastMatch 属性 ($) 从任何正则表达式搜索中返回最后匹配的字符。 lastParen 属性 ($+) 从任意一个正则表达式搜索中返回最后的由括号括起的子匹配(若存在的话)。 lbound 方法 返回在 VBArray 中指定维数所用的最小索引值。 leftContext 属性 ($`) 返回由调用者传递给函数的实际参数个数。 length 属性 (Arguments) 返回由调用者传递给函数的实际参数个数。 length 属性 (Array) 返回比数组中所定义的最高元素大 1 的整数值 。 length 属性 (Function) 返回函数所定义的参数个数。 length 属性 (String) 返回 String 对象的长度。 小于运算符 (<) 比较两个表达式,看是否一个小于另一个。 小于相等运算符 (<=) 比较两个表达式,看是否一个小于等于另一个。 link 方法 将带 HREF 属性的 HTML 锚点添加到 String 对象中的文本两端。 LN2 属性 返回 2 的自然对数。 LN10 属性 返回 10 的自然对数。 localeCompare 方法 返回值表明在当前区域设置下,两个字符串是否相等。 log 方法 返回某个数的自然对数。 LOG2E 属性 返回以 2 为底的 e(即 Euler 常数)的对数。 LOG10E 属性 返回以 10 为底的e(即 Euler 常数)的对数。 逻辑与运算符 (&&) 对两个表达式执行逻辑与操作。 逻辑非运算符(!) 对表达式执行逻辑非操作。 逻辑或运算符 (||) 对两个表达式执行逻辑或操作。 match 方法 使用给定的正则表达式对象对字符串进行查找,并将结果作为数组返回。 Math 对象 一个固有对象,提供基本的数学函数和常数。 max 方法 返回给定的两个表达式中的较大者。 MAX_VALUE 属性 返回在 JScript中能表示的最大值。 message 属性 min 方法 返回给定的两个数中的较小者。 MIN_VALUE 属性 返回在 JScript中能表示的最接近零的值。 取模运算符 (%) 对两个表达式执行除法运算,返回余数。 moveFirst 方法 将集合中的当前项设置为第一项。 moveNext 方法 将当前项设置为集合中的下一项。 multiline 属性 返回 Boolean 值,表明正则表达式使用的 multiline 标志 (m)。 乘法运算符 (*) 对两个表达式执行减法操作。 name 属性 返回错误名称。 NaN 属性 (Global) 返回特殊值 NaN,表示某个表达式不是一个数。 NaN 属性 (Number) 返回特殊值 (NaN),表示某个表达式不是一个数。 NEGATIVE_INFINITY 属性 返回比在 JScript 中能表示的最大的负数 (Number.MAX_VALUE)更小的值。 new 运算符 创建一个新对象。 不恒等运算符 (!==) 比较两个表达式,看是否具有不相等的值或数据类型不同。 Number 对象 表示数值数据类型和提供数值常数的对象。 number 属性 返回或设置与特定错误关联的数值。 Object 对象 提供所有的 JScript 对象的公共功能。 运算符优先级 包含 JScript 运算符的执行优先级信息的列表。 parse 方法 对包含日期的字符串进行分析,并返回该日期与1970年1月1日零点之间相差的毫秒数。 parseFloat 方法 返回从字符串转换而来的浮点数。 parseInt 方法 返回从字符串转换而来的整数。 PI 属性 返回圆周与其直径的比值,约等于3.141592653589793。 pop 方法 将数组中的最后一个元素删除,并返回其值。 POSITIVE_INFINITY 属性 返回比在 JScript 中能表示的最大的数 (-Number.MAX_VALUE)更大的值。 pow 方法 返回一个指定幂次的底表达式的值。 propertyIsEnumerable 属性 返回一个 Boolean 值,表明指定的属性是否是对象的一部分或是否是可枚举的。 prototype 属性 返回对象类的原型引用。 push 方法 向数组中添加新的元素,返回新的数组长度。 random 方法 返回一个 0 和 1 之间的伪随机数。 RegExp 对象 存储有关正则表达式模式查找的信息。 正则表达式对象 包含一个正则表达式模式。 正则表达式语法 在写正则表达式模式时可以使用的特殊字符和序列的列表。 replace 方法 返回根据正则表达式进行文字替换后的字符串的拷贝。 return 语句 从当前函数退出并从该函数返回一个值。 reverse 方法 返回一个元素反序的 Array 对象。 rightContext 属性 ($') 返回被搜索字符串从最后匹配位置到结束之间的字符。 round 方法 将一个指定的数值表达式舍入到最近的整数值。 运行时错误 JScript运行时错误列表 ScriptEngine 函数 返回一个代表所使用的脚本语言的字符串。 ScriptEngineBuildVersion 函数 返回所使用的脚本引擎的编译版本号。 ScriptEngineMajorVersion 函数 返回所使用的脚本引擎的主版本号。 ScriptEngineMinorVersion 函数 返回所使用的脚本引擎的次版本号。 search 方法 返回与正则表达式查找内容匹配的第一个子字符串的位置。 setDate 方法 使用当地时间设置 Date 对象的数值日期。 setFullYear 方法 使用当地时间设置 Date 对象的年份。 setHours 方法 使用当地时间设置 Date对象的小时值。 setMilliseconds 方法 使用当地时间设置 Date 对象的毫秒值。 setMinutes 方法 使用当地时间设置 Date 对象的分钟值。 setMonth 方法 使用当地时间设置 Date 对象的月份。 setSeconds 方法 使用当地时间设置 Date 对象的秒值。 setTime 方法 设置 Date 对象的日期和时间。 setUTCDate 方法 使用全球标准时间(UTC)设置 Date对象的数值日期。 setUTCFullYear 方法 使用全球标准时间(UTC)设置 Date 对象的年份。 setUTCHours 方法 使用全球标准时间(UTC)设置 Date 对象的小时值。 setUTCMilliseconds 方法 使用全球标准时间(UTC)设置 Date 对象的毫秒值。 setUTCMinutes 方法 使用全球标准时间(UTC)设置 Date 对象的分钟值。 setUTCMonth 方法 使用全球标准时间(UTC)设置 Date 对象的月份。 setUTCSeconds 方法 使用全球标准时间(UTC)设置 Date 对象的秒值。 setYear 方法 使用 Date 对象的年份。 shift 方法 删除数组中的第一个元素并返回该值。 sin 方法 返回一个数的正弦。 slice 方法 (Array) 返回数组的一个片段。 slice 方法 (String) 返回字符串的一个片段。 small 方法 将 HTML 的<SMALL> 标识添加到 String 对象中的文本两端。 sort 方法 返回一个元素被排序了的 Array 对象。 source 属性 返回正则表达式模式的文本的复制。 splice 方法 从数组中删除一个元素,必要时在该位置插入一个新元素,返回被删除的元素。 split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 sqrt 方法 返回一个数的平方根。 SQRT1_2 属性 返回 0.5 的平方根,即 1 除以 2 的平方根。 SQRT2 属性 返回 2 的平方根。 strike 方法 将 HTML 的<STRIKE> 标识添加到 String 对象中的文本两端。 String 对象 提供对文本字符串的操作和格式处理,判定在字符串中是否存在某个子字符串并确定其位置。 sub 方法 将 HTML 的 <SUB> 标识放置到 String 对象中的文本两端。 substr 方法 返回一个从指定位置开始并具有指定长度的子字符串。 substring 方法 返回位于 String 对象中指定位置的子字符串。 一元取相反数运算符(-) 从一个表达式的值中减去另一个表达式的值。 sup 方法 将 HTML 的 <SUP> 标识放置到 String 对象中的文本两端。 switch 语句 当指定的表达式的值与某个标签匹配时,即执行相应的一个或多个语句。 Syntax 错误 JScript 语法错误列表。 tan 方法 返回一个数的正切。 test 方法 返回一个 Boolean 值,表明在被查找的字符串中是否存在某个模式。 this 语句 对当前对象的引用。 throw 语句 产生一个可由 try...catch 语句处理的错误条件。 toArray 方法 返回一个从 VBArray 转换而来的标准 JScript 数组。 toDateString 方法 以字符串形式返回日期值。 toExponential 方法 返回一个用指数形式表示的字符串。 toFixed 方法 返回一个字符串,表示一个用不动点记法表示的数字。 toGMTString 方法 返回一个转换为使用格林威治标准时间(GMT)的日期。 toLocaleDateString 方法 返回一个与主机环境的当前区域设置相适应的字符串形式的日期。 toLocaleLowercase 方法 返回字符串,其中的所有字符都被转换成小写(考虑主机环境的当前设置)。 toLocaleString 方法 返回一个转换为使用当地时间的日期。 toLocaleTimeString 方法 返回一个与主机环境的当前区域设置相适应的字符串形式的时间。 toLocaleUppercase 方法 返回字符串,其中的所有字符都被转换成大写(考虑主机环境的当前设置)。 toLowerCase 方法 返回一个字符串,该字符串中所有字母被转换为小写字母。 toString 方法 返回一个对象的字符串表示。 toPrecision 方法 返回一个字符串,该字符串包含用指定位数的指数或 fixed-point 形式表示的数字。 toTimeString 方法 返回以字符串形式表示的时间。 toUpperCase 方法 返回一个字符串,该字符串中所有字母都被转换为大写字母。 toUTCString 方法 返回一个转换为使用全球标准时间(UTC)的日期。 try 语句 实现 JScript 的错误处理。 typeof 运算符 返回一个表示表达式的数据类型的字符串。 ubound 方法 返回在 VBArray 的指定维中所使用的最大索引值。 一元取负运算符 (-) 表示一个数值表达式的相反数。 undefined 属性 返回 undefined 的初始值。 unescape 方法 对用escape 方法编码的 String 对象进行解码。 unshift 方法 返回一个数组,在该数组头部插入了指定的元素。 无符号右移运算符 (>>>) 将表达式向右移位,包括符号位。 UTC 方法 返回 1970年1月1日零点的全球标准时间 (UTC)(或 GMT)与指定日期之间的毫秒数。 valueOf 方法 返回指定对象的原始值。 var 语句 声明一个变量。 VBArray 对象 提供对 Visual Basic 安全数组的访问。 void 运算符 避免一个表达式返回值。 while 语句 执行语句直至给定的条件为 false。 with 语句 确定一个语句的默认对象。 语言元素 描述 GetObject 函数 返回文件中的 Automation 对象的引用。 ScriptEngine 函数 返回代表所使用的脚本语言的字符串。 ScriptEngineBuildVersion 函数 返回所使用的脚本引擎的编译版本号。 ScriptEngineMajorVersion 函数 返回所使用的脚本引擎的主版本号。 ScriptEngineMinorVersion 函数 返回所使用的脚本引擎的次版本号。 语言元素 描述 abs 方法 返回一个数的绝对值。 acos 方法 返回一个数的反余弦。 anchor 方法 在对象的指定文本两端加上一个带 NAME 属性的 HTML 锚点。 apply 方法 应用对象的一个方法,用当前对象代替另一对象。 asin 方法 返回一个数的反正弦。 atan 方法 返回一个数的反正切。 atan2 方法 返回从 X 轴到点 (y, x)的角度(以弧度为单位)。 atEnd 方法 返回一个表明枚举算子是否处于集合结束处的 Boolean 值。 big 方法 在String 对象的文本两端加入 HTML 的<BIG>标识。 blink 方法 将 HTML 的 <BLINK> 标识添加到 String 对象中的文本两端。 bold 方法 将 HTML 的 <B> 标识添加到String 对象中的文本两端。 call 方法 应用对象的一个方法,用当前对象代替另一对象。 ceil 方法 返回大于或等于其数值参数的最小整数。 charAt 方法 返回位于指定索引位置的字符。 charCodeAt 方法 返回指定字符的 Unicode 编码。 compile 方法 将一个正则表达式编译为内部格式。 concat 方法(Array) 返回一个由两个数组合并组成的新数组。 concat 方法(String) 返回一个包含给定的两个字符串的连接的 String 对象。 cos 方法 返回一个数的余弦。 decodeURI 方法 返回一个已编码的通用资源标识符 (URI) 的解码版。 decodeURIComponent 方法 返回一个已编码的通用资源标识符 (URI) 的解码版。 dimensions 方法 返回 VBArray 的维数。 escape 方法 对 String 对象编码,以便在所有计算机上都能阅读。 eval 方法 对 JScript 代码求值然后执行之。 exec 方法 在指定字符串中执行一个匹配查找。 exp 方法 返回 e (自然对数的底) 的幂。 fixed 方法 将 HTML 的<TT> 标识添加到String 对象中的文本两端。 floor 方法 返回小于或等于其数值参数的最大整数。 fontcolor 方法 将 HTML 带 COLOR 属性的<FONT>标识添加到 String 对象中的文本两端。 fontsize 方法 将 HTML 带 SIZE 属性的<FONT>标识添加到 String 对象中的文本两端。 fromCharCode 方法 返回 Unicode 字符值的字符串。 getDate 方法 使用当地时间返回 Date 对象的月份日期值。 getDay 方法 使用当地时间返回 Date 对象的星期几。 getFullYear 方法 使用当地时间返回 Date 对象的年份。 getHours 方法 使用当地时间返回 Date 对象的小时值。 getItem 方法 返回位于指定位置的项。 getMilliseconds 方法 使用当地时间返回 Date 对象的毫秒值。 getMinutes 方法 使用当地时间返回 Date 对象的分钟值。 getMonth 方法 使用当地时间返回 Date 对象的月份。 getSeconds 方法 使用当地时间返回 Date 对象的秒数。 getTime 方法 返回 Date 对象中的时间。 getTimezoneOffset 方法 返回主机的时间和全球标准时间(UTC)之间的差(以分钟为单位)。 getUTCDate 方法 使用全球标准时间(UTC)返回 Date 对象的日期值。 getUTCDay 方法 使用全球标准时间(UTC)返回 Date 对象的星期几。 getUTCFullYear 方法 使用全球标准时间(UTC)返回 Date 对象的年份。 getUTCHours 方法 使用全球标准时间(UTC)返回Date 对象的小时数。 getUTCMilliseconds 方法 使用全球标准时间(UTC)返回Date 对象的毫秒数。 getUTCMinutes 方法 使用全球标准时间(UTC)返回 Date 对象的分钟数。 getUTCMonth 方法 使用全球标准时间(UTC)返回 Date 对象的月份值。 getUTCSeconds 方法 使用全球标准时间(UTC)返回Date对象的秒数。 getVarDate 方法 返回 Date 对象中的 VT_DATE。 getYear 方法 返回 Date 对象中的年份。 hasOwnProperty 方法 返回一个 Boolean 值,表明对象是否具有指定的名称。 indexOf 方法 返回在 String 对象中第一次出现子字符串的字符位置。 isFinite 方法 返回一个 Boolean 值,表明某个给定的数是否是有穷的。 isNaN 方法 返回一个 Boolean 值,表明某个值是否为保留值 NaN (不是一个数)。 isPrototypeOf 方法 返回一个 Boolean 值,表明对象是否存在于另一对象的原型链中。 italics 方法 将 HTML的 <I> 标识添加到 String 对象中的文本两端。 item 方法 返回集合中的当前项。 join 方法 返回一个由数组中的所有元素连接在一起的 String 对象。 lastIndexOf 方法 返回在 String 对象中子字符串最后出现的位置。 lbound 方法 返回在 VBArray 中指定维数所用的最小索引值。 link 方法 将带 HREF 属性的 HTML 锚点添加到 String 对象中的文本两端。 localeCompare 方法 返回一个值,表明两个字符串在当前区域设置下是否相等。 log 方法 返回某个数的自然对数。 match 方法 使用给定的正则表达式对象对字符串进行查找,并将结果作为数组返回。 max 方法 返回给定的两个表达式中的较大者。 min 方法 返回给定的两个数中的较小者。 moveFirst 方法 将集合中的当前项设置为第一项。 moveNext 方法 将当前项设置为集合中的下一项。 parse 方法 对包含日期的字符串进行分析,并返回该日期与1970年1月1日零点之间相差的毫秒数。 parseFloat 方法 返回从字符串转换而来的浮点数。 parseInt 方法 返回从字符串转换而来的整数。 pop 方法 删除数组中的最后一个元素并返回该值。 pow 方法 返回一个指定幂次的底表达式的值。 push 方法 向数组中添加新元素,返回数组的新长度。 random 方法 返回一个 0 和 1 之间的伪随机数。 replace 方法 返回根据正则表达式进行文字替换后的字符串的拷贝。 reverse 方法 返回一个元素反序的 Array 对象。 round 方法 将一个指定的数值表达式舍入到最近的整数并将其返回。 search 方法 返回与正则表达式查找内容匹配的第一个子字符串的位置。 setDate 方法 使用当地时间设置 Date 对象的数值日期。 setFullYear 方法 使用当地时间设置 Date 对象的年份。 setHours 方法 使用当地时间设置 Date 对象的小时值。 setMilliseconds 方法 使用当地时间设置 Date 对象的毫秒值。 setMinutes 方法 使用当地时间设置 Date 对象的分钟值。 setMonth 方法 使用当地时间设置 Date 对象的月份。 setSeconds 方法 使用当地时间设置 Date 对象的秒值。 setTime 方法 设置 Date 对象的日期和时间。 setUTCDate 方法 使用全球标准时间(UTC)设置 Date 对象的数值日期。 setUTCFullYear 方法 使用全球标准时间(UTC)设置 Date 对象的年份。 setUTCHours 方法 使用全球标准时间(UTC)设置 Date 对象的小时值。 setUTCMilliseconds 方法 使用全球标准时间(UTC)设置 Date 对象的毫秒值。 setUTCMinutes 方法 使用全球标准时间(UTC)设置 Date 对象的分钟值。 setUTCMonth 方法 使用全球标准时间(UTC)设置 Date 对象的月份。 setUTCSeconds 方法 使用全球标准时间(UTC)设置 Date 对象的秒值。 setYear 方法 使用 Date 对象的年份。 shift 方法 删除数组中的第一个元素并返回该值。 sin 方法 返回一个数的正弦。 slice 方法 (Array) 返回数组的一个片段。 slice 方法 (String) 返回字符串的一个片段。 small 方法 将 HTML 的<SMALL> 标识添加到 String 对象中的文本两端。 sort 方法 返回一个元素被排序了的 Array 对象。 splice 方法 从数组中删除元素,若必要,在相应位置处插入新元素,返回被删除的元素。 split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 sqrt 方法 返回一个数的平方根。 strike 方法 将 HTML 的<STRIKE> 标识添加到String 对象中的文本两端。 sub 方法 将 HTML 的 <SUB> 标识放置到 String 对象中的文本两端。 substr 方法 返回一个从指定位置开始并具有指定长度的子字符串。 substring 方法 返回位于 String 对象中指定位置的子字符串。 sup 方法 将 HTML 的 <SUP> 标识放置到 String 对象中的文本两端。 tan 方法 返回一个数的正切。 test 方法 返回一个 Boolean 值,表明在被查找的字符串中是否存在某个模式。 toArray 方法 返回一个从 VBArray 转换而来的标准 JScript 数组。 toDateString 方法 返回以字符串形式表示的日期。 toExponential 方法 返回一个字符串,该字符串包含一个以指数形式表示的数字。 toFixed 方法 返回一个字符串,表明一个用 fixed-point 形式表示的数字。 toGMTString 方法 返回一个转换为使用格林威治标准时间(GMT)的字符串的日期。 toLocaleDateString 方法 返回一个以字符串形式表示的日期,该日期与主机环境的当前区域设置相适应。 toLocaleLowercase 方法 返回一个字符串,其中所有的字母字符都被转换成小写(考虑主机环境的当前区域设置)。 toLocaleTimeString 方法 返回一个以字符串形式表示的时间,该时间与主机环境当前区域设置相适应。 toLocaleString 方法 返回一个转换为使用当地时间的字符串的日期。 toLocaleUppercase 方法 返回一个字符串,其中所有的字母字符都被转换成大写(考虑主机环境的当前区域设置)。 toLowerCase 方法 返回一个所有的字母字符都被转换为小写字母的字符串。 toPrecision 方法 返回一个字符串,该字符串包含用指定位数的指数或 fixed-point 形式表示的数字。 toString 方法 返回一个对象的字符串表示。 toTimeString 方法 返回一个以字符串形式表示的时间。 toUpperCase 方法 返回一个所有的字母字符都被转换为大写字母的字符串。 toUTCString 方法 返回一个转换为使用全球标准时间(UTC)的字符串的日期。 ubound 方法 返回在 VBArray 的指定维中所使用的最大索引值。 unescape 方法 对用escape 方法编码的 String 对象进行解码。 unshift 方法 返回一个数组,在该数组头部插入了指定的元素。 UTC 方法 返回 1970年1月1日零点的全球标准时间 (UTC) (或 GMT)与指定日期之间的毫秒数. valueOf 方法 返回指定对象的原始值。 语言元素 描述 ActiveXObject 对象 启用并返回一个 Automation 对象的引用。 Array 对象 提供对创建任何数据类型的数组的支持。 Boolean 对象 创建一个新的 Boolean 值。 Date 对象 提供日期和时间的基本存储和检索。 Dictionary 对象 存储数据键、项对的对象。 Enumerator 对象 提供集合中的项的枚举。 Error 对象 包含在运行 JScript 代码时发生的错误的有关信息。 FileSystemObject 对象 提供对计算机文件系统的访问。 Function 对象 创建一个新的函数。 Global 对象 是一个内部对象,目的是将全局方法集中在一个对象中。 Math 对象 一个内部对象,提供基本的数学函数和常数。 Number 对象 表示数值数据类型和提供数值常数的对象。 Object 对象 提供所有的 JScript 对象的公共功能。 RegExp 对象 存储有关正则表达式模式查找的信息。 正则表达式对象 包含一个正则表达式模式。 String 对象 提供对文本字符串的操作和格式处理,判定在字符串中是否存在某个子字符串及确定其位置。 VBArray 对象 提供对 Visual Basic 安全数组的访问。 语言元素 描述 ! 运算符 对表达式执行逻辑“非”运算。 != 运算符 比较两个表达式的值,看其是否相等。 !== 运算符 比较两个表达式的值,看其是否不相等或数据类型不一致。 % 运算符 对两个表达式执行除法运算,返回余数。 %= 运算符 对变量和表达式执行除法运算,余数赋给变量。 & 运算符 对两个表达式执行按位“与”运算。 &= 运算符 对变量和表达式执行按位“与”运算,结果赋给变量。 && 运算符 对两个表达式执行逻辑连接运算。 * 运算符 对两个表达式执行乘法运算。 *= 运算符 对变量和表达式执行乘法运算,结果赋给变量。 + 运算符 对两个数值表达式求和,或连接两个字符串。 ++ 运算符 变量值加一。 += 运算符 将变量和表达式的值相加,结果赋给变量。 , 运算符 使两个表达式按顺序执行。 - 运算符 从一个表达式的值减去另一个表达式的值或对一个表达式执行取负运算。 -- 运算符 变量值减一。 -= 运算符 从变量值中减表达式的值,结果赋给变量。 / 运算符 对两个表达式执行除法运算。 /= 运算符 对变量和表达式执行除法运算,结果赋给变量。 < 运算符 比较一个表达式是否小于另一个表达式。 << 运算符 将表达式向左移位。 <<= 运算符 将变量的值左移由表达式指定的位数,结果赋给变量。 <= 运算符 比较一个表达式的值是否小于等于另一个表达式的值。 = 运算符 为变量赋值。 == 运算符 比较两个表达式是否相等。 === 运算符 比较两个表达式,看其值是否相等或数据类型是否一致。 > 运算符 比较一个表达式的值是否大于另一表达式。 >= 运算符 比较一个表达式的值是否大于等于另一表达式。 >> 运算符 表达式向右移位,符号位不变。 >>= 运算符 将变量的值左移由表达式指定的位数,符号位不变,结果赋给变量。 >>> 运算符 表达式向右移位,包括符号位。 >>>= 运算符 将变量的值左移由表达式指定的位数,包括符号位,结果赋给变量。 ?: 运算符 根据条件执行其中一个语句。 ~ 运算符 对表达式执行按位“非”(取反)运算。 | 运算符 对两个表达式执行按位“或”运算。 |= 运算符 对变量和表达式的值执行按位“或”运算,结果赋给变量。 || 运算符 对两个表达式执行逻辑或运算。 ^ 运算符 对两个表达式执行按位异或运算。 ^= 运算符 对变量和表达式的值执行按位异或运算,结果赋给变量。 加法运算符 (+) 求两个数值表达式的和,或连接两个字符串。 赋值运算符 (=) 将一个值赋给变量。 按位与运算符 (&) 对两个表达式执行按位与操作。 按位左移运算符(<<) 将一个表达式的各位向左移。 按位取非运算符 (~) 对一个表达式执行按位取非(求非)操作。 按位或运算符 (|) 对两个表达式指定按位或操作。 按位右移运算符 (>>) 将一个表达式的各位向右移,保持符号不变。 按位异或运算符 (^) 对两个表达式执行按位异或操作。 逗号运算符 (,) 使两个表达式连续执行。 比较运算符 返回 Boolean 值,表示比较结果。 复合赋值运算符 复合赋值运算符列表。 条件(三元)运算符(?:) 根据条件执行两个表达式之一。 递减运算符 (--) 将变量减一。 delete 运算符 删除对象的属性,或删除数组中的一个元素。. 除法运算符(/) 对两个表达式执行除法运算。 相等运算符(==) 比较两个表达式,看是否相等。 大于运算符(>) 比较两个表达式,看一个是否大于另一个。 大于相等运算符 (>=) 比较两个表达式,看一个是否大于等于另一个。 恒等运算符 (===) 比较两个表达式,看是否值相等并具有相同的数据类型。 递增运算符(++) 给变量加一。 不相等运算符 (!=) 比较两个表达式,看是否不相等。 instanceof 运算符 返回一个 Boolean 值,表明某个对象是否为特定类的一个实例。 小于运算符(<) 比较两个表达式,看是否一个小于另一个。 小于相等运算符 (<=) 比较两个表达式,看是否一个小于等于另一个。 逻辑与运算符 (&&) 对两个表达式执行逻辑与操作。 逻辑非运算符 (!) 对表达式执行逻辑非操作。 逻辑或运算符 (||) 对两个表达式执行逻辑或操作。 取模运算符。 (%) 对两个表达式执行除法运算,返回余数。 乘法运算符 (*) 对两个表达式执行减法操作。 new 运算符 创建一个新对象。 不恒等运算符 (!==) 比较两个表达式,看是否具有不相等的值或数据类型不同。 运算符优先级 包含 JScript 运算符的执行优先级信息的列表。 减法运算符 (-) 求两个表达式值的差。 typeof 运算符 返回一个表示表达式的数据类型的字符串。 一元取相反数运算符(-) 表示一个数值表达式的相反数。 无符号右移运算符 (>>>) 表达式向右移位,包括符号位。 void 运算符 避免一个表达式返回值。 语言元素 描述 0...n 属性 返回单个参数的实际值,该参数来自由当前运行函数的参数属性返回的参数对象。 $1...$9 属性 返回在模式匹配中找到的最近的九条记录 arguments 属性 返回一个包含传递给当前执行函数的每个参数的数组。 caller 属性 返回调用当前函数函数引用。 callee 属性 返回正执行的函数对象,它是指定的函数对象的文本正文。 constructor 属性 指定创建对象的函数。 description 属性 返回或设置关于指定错误的描述字符串。 E 属性 返回 Euler 常数,即自然对数的底。 global 属性 返回一个 Boolean 值,表明正则表达式使用的 global 标志 (g) 状态。 ignoreCase 属性 返回一个 Boolean 值,表明正则表达式使用的 ignoreCase 标志 (i) 状态。 index 属性 返回在字符串中找到的第一个成功匹配的字符位置。 Infinity 属性 返回 Number.POSITIVE_INFINITY 的初始值。 input 属性 返回进行查找的字符串。 lastIndex 属性 返回在字符串中找到的最后一个成功匹配的字符位置。 lastMatch 属性 ($) 返回任意正则表达式搜索中最后匹配的字符。 lastParen 属性 ($+) 从任意一个正则表达式搜索中返回最后的由括号括起的子匹配(若存在的话)。 leftContext 属性 ($`) 返回由调用者传递给函数的实际参数个数。 length 属性 (Arguments) 返回由调用者传递给函数的实际参数个数。 length 属性 (Array) 返回比数组中所定义的最高元素大 1 的一个整数。 length 属性 (Function) 返回函数所定义的参数个数。 length 属性 (String) 返回 String 对象的长度。 LN2 属性 返回 2 的自然对数。 LN10 属性 返回 10 的自然对数。 LOG2E 属性 返回以 2 为底的 e(即 Euler常数)的对数。 LOG10E 属性 返回以 10 为底的e(即 Euler常数)的对数。 MAX_VALUE 属性 返回在 JScript中能表示的最大值。 message 属性 返回错误消息串。 MIN_VALUE 属性 返回在 JScript中能表示的最接近零的值。 multiline 属性 返回一个 Boolean 值,表明正则表达式使用的 multiline 标志 (m) 状态。 name 属性 返回错误名称。 NaN 属性(Global) 返回特殊值 NaN,表示某个表达式不是一个数。 NaN 属性 (Number) 返回特殊值 (NaN),表示某个表达式不是一个数。 NEGATIVE_INFINITY 属性 返回比在 JScript 中能表示的最大的负数 (-Number.MAX_VALUE)更负的值。 number 属性 返回或设置与特定错误关联的数值。 PI 属性 返回圆周与其直径的比值,约等于3.141592653589793。 POSITIVE_INFINITY 属性 返回比在 JScript 中能表示的最大的数 (Number.MAX_VALUE)更大的值。 propertyIsEnumerable 属性 返回一个 Boolean 值,表明指定的属性是否是对象的一部分或是否是可枚举的。 prototype 属性 返回对象类的原型引用。 source 属性 返回正则表达式模式的文本的拷贝。 rightContext 属性 ($') 返回被搜索字符串从最后匹配位置到结束之间的字符。 SQRT1_2 属性 返回 0.5 的平方根,即 1 除以 2 的平方根。 SQRT2 属性 返回 2 的平方根。 undefined 属性 返回 undefined 的初始值。 语言元素 描述 break 语句 终止当前循环,或者如果与一个label 语句关联,则终止相关联的语句。 catch 语句 包含在 try 语句块中的代码发生错误时执行的语句。 @cc_on 语句 激活条件编译支持。 //(单行注释语句) 使单行注释被 JScript 语法分析器忽略。 /*..*/(多行注释语句) 使多行注释被 JScript 语法分析器忽略。 continue 语句 停止循环的当前迭代,并开始一次新的迭代。 do...while 语句 先执行一次语句块,然后重复执行该循环,直至条件表达式的值为 false。 for 语句 只要指定的条件为 true,就一直执行语句块。 for...in 语句 对应于对象或数组中的每个元素执行一个或多个语句。 function 语句 声明一个新的函数。 @if 语句 根据表达式的值,有条件地执行一组语句。 if...else 语句 根据表达式的值,有条件地执行一组语句。 Labeled 语句 给语句提供一个标识符。 return 语句 从当前函数退出并从该函数返回一个值。 @set 语句 创建用于条件编译语句的变量。 switch 语句 当指定的表达式的值与某个标签匹配时,即执行相应的一个或多个语句。 this 语句 对当前对象的引用。 throw 语句 产生一个可由 try...catch 语句处理的错误条件。 try 语句 实现 JScript 的错误处理。 var 语句 声明一个变量。 while 语句 执行语句直至给定的条件为 false。 with 语句 确定一个语句的默认对象。 语言元素 描述 运行时错误 JScript运行时错误列表 语法错误 JScript语法错误列表

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值