以前的知识总是忘,遇到代码又看不懂.要再复习一下,顺便记录一下. 1 add(1,2); 2 function add(a,b){ 3 alert(a+b); 4 } 代码能输出3,为什么不是按顺序执行?应该是 //add is not defined ... javascript的变量声明具有hoisting机制,JavaScript引擎在执行的时候,会把所有变量的声明都提升到当前作用域的最前面. 也就是说,function add(a,b){alert(a+b)}是一个函数声明,告诉我们有
原创文章,未经博主允许禁止转载. C++的类可以进行前向声明.但是,仅仅进行前向声明而没有定义的类是不完整的,这样的类,只能用于定义指针.引用.以及用于函数形参的指针和引用.而不能定义对象(因为此时编译器只知道这是个类,还不知道这个类的大小有多大),也不能访问类的对象,仍和形式的访问都允许(因为此时根本不知道有些什么成员).等到类正式定义以后,就可以以各种方式使用该类了. //前向声明此类 class Video; //此时,只能定义指针和引用.不能定义对象,也不能以任何方式调用对象的成员 vo
一.声明与定义(赋值) 1.val, 常量声明 val x:T val x:T=e 2.var, 变量声明 var x:T var x:T=e ?类型省略(默认类型)val x=e var x=e ? 声明省略(连续声明) val x1,x2,x3 等价于 val x1;val x2; var x1,x2,x3:T=e 等价于 var xn:T=e 3.def,函数声明def abc(xn:T):T*=e def adder(m:Int,n:Int) =m+n def adder()