精华内容
下载资源
问答
  • 对象和数组初始化表达式 实际上是一个新创建的对象和数组。有时也称对象直接量和数组直接量,但它们不是原始表达式,因为它们所包含的成员或者元素都是子表达式。 数组初始化表达式是通过一对方括号和其内部由逗号隔...

    对象和数组初始化表达式
    实际上是一个新创建的对象和数组。有时也称对象直接量和数组直接量,但它们不是原始表达式,因为它们所包含的成员或者元素都是子表达式。

    数组初始化表达式是通过一对方括号和其内部由逗号隔开的列表构成,初始化的结果是一个新创建的数组,数组的元素是逗号分隔的表达式的值。并且,数组初始化表达式中的元素初始化表达式也可以是数组的初始化表达式,也就是说,这些表达式是可以嵌套的。
    js对数组初始化表达式进行求值的时候,数组初始化表达式中的元素也都会各自计算一次,也就是说,数组初始化表达式每次计算的值有可能不同。
    数组直接量中的列表逗号之间的元素可以省略,省略的空位会填充值undefined。结尾处也可以留下逗号,但并不会创建一个新的值为undefined的元素。
    对象初始化和数组初始化很相似,只是方括号被花括号代替,并且每个子表达式都包含 一个属性和一个冒号作为前缀。
    像数组一样,对象直接量也可以嵌套。
    同样,js求对象初始化表达式的值的时候,对象的表达式也都会各自计算一次, 并且它们不必包含常数值,它可以是任意的js表达式,同样,对象直接量中的属性名称可以是字符串,而不是标识符。
    属性访问表达式
    属性访问表达式运算得到一个对象属性或一个数组元素的值,js为属性访问定义了两种语法:
    expression.identifier
    表达式后跟随一个句点和标识符。表达式指定对象,标识符则指定需要访问的属性名称
    expression[expression]:
    使用方括号,方括号内是另外一个表达式(这种方式适用于对象和数组),方括号内的表达式指定要访问的属性的名称,或者代表要访问数组元素的索引。
    不管使用哪种形式的属性访问表达式,在".“和”["之前的表达式总是会首先计算。
    如果计算结果是null或者undefined,表达式会抛出一个类型错误异常,因为这两个值都不能包含任意属性。
    如果计算结果不是对象或者数组,js会将其转换为对象。
    如果对象表达式后面跟随句点和标识符,则会查找这个标识符所指定的属性的值,并将其作为整个表达式的值返回。
    如果对象表达式后跟随一对方括号,则会计算方括号内的表达式的值,并将其转换成字符串。
    不管哪种情况,如果命名的属性不存在,则整个属性访问表达式的值就是undefined。

    expression.identifier这种表达式的写法更加简单,但是需要注意,
    这种表达式只适用于要访问的属性名称是合法的标识符,并且需要知道要访问的属性名字。
    如果属性名称是一个保留字或者包含空格和标点符号,或者是一个数字,则必须用方括号写法。
    如果属性名是通过运算得出的值,而不是固定值得时候,必须用方括号写法。

    对象创建表达式
    对象创建表达式创建一个对象并调用一个函数初始化新对象的属性。
    如果一个对象创建表达式不需要传入任何参数给构造函数时,可以省略圆括号。
    当计算一个对象表达式的值时,和对象初始化表达式通过{}创建对象的做法一样,js首先会创建一个空对象,然后,js通过传入指定的参数并将这个新对象当做this的值来掉用一个指定的函数,这个函数可以使用this来初始化这个新创建对象的属性。
    那些被当成构造函数的函数,不会返回一个值,并且这个新创建的并被初始化后的对象,就是整个对象创建表达式的值。

    展开全文
  • 对象初始化表达式

    2014-02-18 10:07:04
    对象初始化表达式

    对象初始化表达式在构造函数中的应用:

    using System;
    using System.Collections.Generic;
    using System.Text;
    namespace Sample
    {
        class Program
    {
    static viod Main()
    {
    //使用Exception类的过早函数实例化一个Exception对象
    throw new exception("MyException"){ Source="LINQ Stduy"};
    }
    }
    }




    相同的逻辑但不使用对象初始化表达式


    static viod Main()
    {
    //使用Exception类的构造函数实例化一个Exception对象
    Exception exception = new Exception ("MyException");
    exception.Source=" LINQ Study ";
    throw exception;
    }

    展开全文
  • JavaScript原始表达式,JavaScript对象初始化表达式,JavaScript数组初始化表达式
    4.1原始表达式
    原始表达式是最简单的表达式,,是表达式的最小单位--不再包含其他表达式。JavaScript的原始表达式包含常量或直接量、关键字和变量。

    第一种原始表达式是直接量:
    数字直接量--一个数字直接出现在JavaScript程序中,       1.23
    字符串直接量--由单引号或者双引号括起来的字符序列,   ‘aaa’
    正则表达式直接量--两条斜线之间的文本构成          /pattern/

    第二种原始表达式-JavaScript的一些保留字构成了原始表达式:true、false、null、this
    *和其他关键字不同,this并不是一个常量,它在程序中的不同地方返回的值也不相同。this关键字经常出现在面向对象编程中,在一个方法体内,this返回调用这个方法的对象。


    第三种原始表达式是变量:
    i  // 返回变量i的值
    sum //返回sum的值
    undefined   //undefined是全局变量,和null不同,它不是一个关键字

    当JavaScript中出现了标识符,JavaScript会将其当做变量而去查找它的值。如果变量名不存在,表达式运算结果为undefined,但在ECMAScript的严格模式中,对不存在的变量进行求值会抛出一个引用错误异常。


    4.2 对象和数组的初始化表达式

    对象和数组初始化表达式实际上是一个新创建的对象和数组,这些初始化表达式有时称作“对象直接量”和“数组直接量”,然而和布尔直接量不同,它们不是原始表达式,因为它们包含的成员和元素都是子表达式。

    数组初始化表达式是通过一对方括号和其内由逗号隔开的列表构成的,初始化结果是一个新创建的数组,数组的元素是逗号分隔开的表达式的值:
    var i = [] //空数组
    var j = [1+2,2+3]  //两个元素的数组
    var x = [[1,2],[3,4],[5,6]]  //嵌套数组
    var y = [1,,,2] //中间两个元素undefined
    console.log(y[2]);
    var z = [1,2,];  //结尾逗号后的元素不会创建
    console.log(z[5]);
    但是在实践过程中发现结尾的值也是undefined,猜测应该是使用时就创建了该元素

    对象初始化表达式是由花括号开始,每个子表达式都包含一个属性名和一个冒号作为前缀:
    var i = {} //空对象
    var j = {a:1 ,b:2}  //两个元素的对象
    var x = {a:{x:1,y:2},b:{x:1,y:2}} //嵌套对象
     

    展开全文
  • 数组对象的初始化表达式

    千次阅读 2015-08-20 10:39:39
    数组对象的初始化表达式 /* 表达式:原始表达式、初始化表达式、函数表达式、属性访问表达式 调用表达式、对象创建表达式 */ var a = [1,2]; var aa = new Array(1,2); var b=[1,,,4]; var bb...
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>数组对象的初始化表达式</title>
    </head>
    
    <body>
    	<script>
    	/*
    	表达式:原始表达式、初始化表达式、函数表达式、属性访问表达式
    			调用表达式、对象创建表达式
    	*/
    		var a = [1,2];
    		var aa = new Array(1,2);
    		
    		var b=[1,,,4];
    		var bb = [1,undefined,undefined,4];
    		
    		var c={x:1,y:2};
    		var cc=new Object();
    			cc.x=1;cc.y=2;
    			
    		//函数表达式
    		var dd=function(){};
    		
    		//属性访问表达式
    		var e={x:1};
    		e.x;
    		e['x'];
    		
    		//调用表达式
    		//functionname();
    		
    		//对象创建表达式
    		new Func(1,2);
    		new Object;
    		
    		//逗号表达式
    		var dou=(1,2,3);//dou=3
    		
    		//delete obi.x;
    		var obj={x:1};
    		obj.x;//1
    		document.write(obj.x);
    		delete obj.x;
    		obj.x;//undefined
    		document.write(obj.x);
    	</script>
    </body>
    </html>
    

    展开全文
  • 如果要对两个变量同时在for后面的括号中进行初始化,例如I=1与flag=1,两个表达式中间应用逗号隔开,而不是用分号,但初始化表达式,循环继续条件表达式,循环控制变量增值表达式,这三者之间使用分号隔开。...
  • 对象和数组初始化表达式 实际上是一个新创建的对象和数组。有时也称对象直接量和数组直接量,但它们不是原始表达式,因为它们所包含的成员或者元素都是子表达式。 数组初始化表达式是通过一对方括号和其内部由逗号...
  • 当Base类中有多个构造函数时,在Derived类的初始化表达式表中只需要使用其中一个构造函数进行初始化就可以了,不需要把Base类中的所有构造函数都进行调用。 例如: #include using namespace std; class Base { ...
  • C++0x为了增加自动类型推断的特性,修改了auto这个关键字的含义,这个关键字在现行C++标准中表示生存期为自动,写不写它效果是一样...因此这次C++0x废物利用,扩展了它的含义,用来表示从初始化表达式自动类型推断了。
  • 是的,可以把这些初始化放到for的上面,可是有时觉得如果是一次性的变量,我希望它可以是for的局部变量,以避免浪费一些最佳变量名(额,好吧,我承认我强词夺理了^^),或者能让代码更优雅点吧? 拜求解决方案。
  • 引用变量的初始化

    千次阅读 2017-08-17 11:39:55
    变量初始化表达式 变量初始化表达式分析 变量的初始化 变量初始化表达式 变量初始化表达式分析变量初始化表达式 表达式语法: 类型名 变量名 = 表达式; 变量初始化表达式分析 现在分析下变量初始化表达式. 举个...
  • constexpr的常量表达式初始化 C++11新标准规定,允许将变量声明为constexpr类型以便由编译器来验证变量的值是否是一个常量表达式。声明为constexpr的变量一定是一个常量,而且必须用常量表达式初始化。 ...
  • JavaScript表达式

    2017-08-22 11:03:45
    1 数组和对象的初始化表达式 数组的初始化就是创建一个新的数组的过程,初始化表达式被称为数组直接量 数组的初始化表达式是通过一对[]和其内的逗号隔开的列表构成 数组可以嵌套 数组逗号和逗号之间无值是会被填充...
  • 《C++primer》中,讲到头文件中不可以包含定义,有三个例外:类,常量表达式初始化的const对象,inline。 对于不是用常量表达式初始化的const对象,可以加上extern放在源文件中,并在头文件中加上extern声明。 ...
  • 数组的初始化可以在声明的后面紧跟一个初始化的表达式列表,初始化表达式列表用花括号括起来,各初始化表达式之间通过逗号分隔。例如,如果要用一年中各月的天数初始化数组days,其变量的定义如下: int days[] = {...
  • K&R之初始化&宏调用

    2017-08-15 13:29:49
    对于自动变和寄存器变量来说初始化表达式可以不是常量表达式,表达式中可以包含任意在此表达式之前已经定义的值,包括函数调用 宏调用: 宏替换对在括号中的字符串不起作用 如 #define YES 123 宏替换对引号中的
  • 初始化表达式必须含有类型标签 左花括号必须在类型尾部,不能另起一行 多个成员初始值以逗号分隔 允许多行,但每行必须以逗号或花括号结束 例如以下正确示例: func main(){ type student struct { name ...
  • 数组初始化

    2019-03-27 21:46:51
    数组初始化数组new ...这样就给拥有了对数组的一个引用,还没有分配任何空间,而编译器又不允许指定数组的大小,那么为了给数组分配存储空间,就需要使用初始化表达式了,这种初始化操作是由一堆花括号来实现的...
  • […] 当哈希表的大小达到初始大小和加载因子的乘积的时候,哈希表会进行 rehash操作 […] 如果在一个HashMap 实例里面要存储多个映射关系时,我们需要设置足够大的初始化大小以便更有效地存储映射关系而不是让哈希...
  • C语言变量的初始化

    2010-01-07 10:51:00
    对于外部变量与静态变量来说,初始化表达式必须是常量表达式,且只初始化一次(从概念上讲是在程序开始执行前进行初始化)。对于自动变量与寄存器变量,则在每次进入函数或程序时都将被初始化。对于自动变量与寄存器...
  • 只是在进入for循环的时候执行一次初始化,后面每次循环都不再执行,执行初始化之后,执行条件表达式 i ; 如果条件表达式成立,执行循环体,否则退出循环, 执行循环体后,执行步进语句。 上面的语句拆分一下,...
  • 【JS】JavaScript表达式

    千次阅读 2015-07-01 22:42:44
    JavaScript表达式中最简单的一类表达式就是常量,变量名也是一种简单的表达式...2、对象和数组的初始化表达式对象和数组的初始化表达式实际上是一个新创建的对象和数组。数组初始化表达式是通过一对方括号和其内由逗号
  • js中的表达式

    2018-06-24 14:48:35
    数组的元素是逗号分隔的表达式的值: [] //一个空数组,[]内是空表示该数组没有元素 [1+2,3+4] //有两个元素,一个是3,一个是7数组初始化表达式中的元素初始化表达式也可以是数组初始化表达式,即这些表达式...
  • 我就很纳闷了,刚开始以为是宏定义不能够将赋值的变量再次赋给另一变量,纠结了好久,看来问题不在这儿,想想应该是全局变量不能够用变量初始化的原因,查询后总结如下: 编译器无法在编译时求得一个非常量的值,它...
  • 摘自: c primer plus(第四版) 14.3.1 & 12.1.7初始化一个具有静态存储时期(比如静态外部链接、静态内部链接、静态空链接)的变量只能使用常量值,不能用变量。静态存储的变量包括:1.全局变量2.文件全局变量3.局部...
  • #include #include #include using namespace std; bool isNumeric(char* string) { std::string str; if(string==NULL) return false; while((*string)!='\0'){ str+=*string; string++;...
  • 2)使用逗号分隔初始化表达式 3)初始化列表常用于设置final变量的值 Person.withMap(Map map): name = map["name"], gender = map["gender"] { this.age = map["age"]; } 2、静态成员 1)使用static关键字来...
  • 初始化语句在C++17中,类似于 for 语句,在 if ... 条件) 语句这里的初始化语句是可选的,它可以是初始化表达式,也可以是变量声明。带初始化语句的 if 和 switch 语句在语义上相当于:{ 初始化语句; if (条件) 语句

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 411,872
精华内容 164,748
关键字:

初始化表达式