您好,欢迎访问一九零五行业门户网

学习YUI.Ext 第三天_YUI.Ext相关

对于以前很多混淆不清的知识,有必要再梳理一下:就从最基础的变量开始说起。
1.。变量variable
a.全局变量global variable 和 局部变量 private variable
加var和不加var是有区别的 
      --》如果不用关键字var,声明一个变量,那么这个是全局变量,任何子函数都可以访问,就算是跳出花括号的地方,亦可被访问;
      --》如果使用关键字var,则从所在的“花括号{}”起,全体函数都可以访问该变量,如:
function foo(){
  i=8                    //global variable
  alert(i)
 }
function foo2(){
  var i=88 //在此花括号下都可访问变量i
  alert(i);
  child()
  function child(){alert(i)}
 } 
foo();foo2()
alert(i) //这里的i还是8
值得注意是function是编译期的对象,必须执行或实例化才能在内存中分配这一变量。
    全局变量习惯以_开头;p.s全部变量最好慎用,你很知道这个变量在那里何时发生变化!
  -------》参见 js手册:
“尽管并不安全,但声明语句中忽略 var 关键字是合法的 jscript 语法。这时,jscript 解释器给予变量全局范围的可见度。当在过程级中声明一个变量时,它不能用于全局范围;这种情况下,变量声明必须用 var 关键字。”
b.变量的数据类型 the types of variable
jscript 有三种主要数据类型、两种复合数据类型和两种特殊数据类型。
主要(基本)数据类型是:
字符串 
数值 
布尔 
复合(引用)数据类型是:
对象 
数组 
特殊数据类型是:
null 
undefined 
下面简述一下javascript中的各种对象类型:
    native object: javascript语言提供的不依赖于执行宿主的对象,其中一些是内建对象,如:global、math;一些是在脚本运行环境中创建来使用的,如:array、boolean、date、function、number、object、regexp、error。
    build-in object: javascript语言提供的不依赖于执行宿主的内建对象,如:global、math;内建对象都是native object。
    host object:javascript语言提供的任何依赖于宿主环境的对象,所有非native object的对象都是宿主对象,如:ie中的window,wscript中的wscript实例,任何用户创建的类。
****如何检查对象类型?******
   1.typeof()
      typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: number, string, boolean, object, function, 和 undefined.
2.   val instanceof array
    返回一个 boolean 值,指出对象是否是特定类的一个实例。 
  例如用到检查 数组或日期类型的时候(事实上,任何类型都允许,见例),必须使用instance of + class name(不用引号),例:
function foo(){}
var f = new foo();
alert(f instanceof foo2) //false
3.constructor 
 constructor 的用法感觉跟instance的用法一样,只不过不返回boolean值
x = new string(hi);
if (x.constructor == string)
      // 进行处理(条件为真)。
*******var i={}是什么类型?****
答案:object类型 等价于var i = new object
object对象是一切对象的载体,有点想父类吧
object 对象很简单, 
它就只有两个property和两个method 
这两个property是: 
prototype 
constructor 
这两个function是: 
tostring() 
valueof()
那么var obj = new myobject()怎么文本化呢?其实也很简单的,obj的文本化定义如下:
var obj = 
     {
         properties1 : 1, properties2 : '2', properties3 : [3],
         method1 : function(){ return this.properties1 + this.properties3[0];},
         method2 : function(){ return this.preperties2; }
     };
类实例文本化定义的语法为,用一对{}表示类,也就说{}完全等价于new object()。然后{}内按key:value组织属性和方法,key可以是任意[a-za-z0-9_]的字符组合,甚至数字开头都是合法的@_@,value是任何的合法的文本化javascript数据,最后每个键值对用,来分隔就行了。
通常用于json交换数据。
*******undefined 的两种含义*****
1.undefined关键字 2.undefined属性
声明了变量,但没赋过值,是属于第一种的情况;
完全没有声明,就跑出一个变量参与运算,它的数据类型是第二种情况;
两个相同名字却不同含义,建议下一版本改名。
var declared;                         //声明变量。
if (declared == undefined)            //改为uninitialized没初始化 会更准确,js is loose language indeed!
  document.write(declared has not been given a value.);
if (typeof(notdeclared) == undefined)
  document.write(notdeclared has not been defined.);
其它类似信息

推荐信息