学习javascript 的一点感想

      动态性是指,在一个Javascript对象中,要为一个属性赋值,我们不必事先创建一个字段,只需要在使用的时候做赋值操作即可,如下例:

1 var obj=new object();
2 obj.name="myname";
3 obj.say=function(){
4     alert("hello");
5 }
6 obj.say();

      Javascript是弱类型的,它的数据类型无需在声明时指定,解释器会根据上下文对变量进行实例化,比如:

1 var s="text";
2 alert(s);
3 s=12+5;
4 alert(s);

      js的数据类型:基础数据类型(字符串,布尔值,数值性(浮点型,整型))和对象类型(对象,数组,函数)

1     print(typeof obj);  
2     print(typeof array);  
3     print(typeof func);  

     //将打印出  
    object  
    object  
    function   
    

     当使用str.length时,JavaScript会自动包装一个临时的String对象,内容为str的内容,然后获取该对象的length属性,最后,这个临时的对象将被释放。

    由于JavaScript是弱类型的,所以JavaScript引擎需要根据上下文来“猜测”对象的类型,这就使得JavaScript的效率比编译型的语言要差一些。

    引用类型,如对象,数组和函数,由于他的大小不受限制,故我们通过对其引用来访问它,引用本身就是个地址。即指向存储复杂对象的位置。

    JavaScript本身是基于原型的,每个对象都有一个prototype的属性来,这个prototype本身也是一个对象,因此它本身也可以有自己的原型,这样就构成了一个链结构。

    解释器传递给函数的是一个类似于数组的内部值,叫arguments,这个在函数对象生成的时候就被初始化了。比如我们传递给adPrint一个参数的情况下,其他两个参数分别为undefined.这样

    我们可以扩展JavaScript解释器环境中内置的对象,这种方式的好处在于,扩展之后的对象可以适用于其后的任意场景,而不用每次都显式的声明

    通过 new 操作符来作用与一个函数,实质上会发生这样的动作:
    首先,创建一个空对象,然后用函数的 apply 方法,将这个空对象传入作为 apply 的第一个参数,及上下文参数。这样函数内部的 this 将会被这个空的对象所替代:

1 <strong>var triangle = new Shape( "triangle" );  
2     // 上一句相当于下面的代码  
3     var triangle = {};  
4     Shape.apply(triangle, [ "triangle" ]);</strong> 


    

posted @ 2014-01-07 10:48  明娃儿  阅读(362)  评论(0编辑  收藏  举报