zoukankan      html  css  js  c++  java
  • javascript语言精粹学习记录一

    Chapter2:语法基础(程序员的基础...老也记不住)
    1、do while
         do{//先执行}while(判断)
    2、for
         for(初始化;测试操作是否进入下个循环;更新条件){//statement}
        continue:进入下一个循环中
    3、try catch
        try{//可能会发生错误的代码}
         catch(e){//如果发生错误则执行的代码}
          finally{//总要执行的代码}
    4、switch
         switch(type){//注意type要和case中的类型一致,不能转换
             case "1":
                  alert("11");
                  break;
             case "2":
                  alert("22");
                  break;
             default:
                 alert("this is other situation");
         }
    5、if else
      if(){...}
     else if(){..}
      else{...} 
     
    Chapter 3:
    1、对象字面量:{}
    2、检索:&&避免error;|| 填充默认值
    3、更新
    4、**引用:
             对象通过引用来传递。永远不会被拷贝
             var a={c:{d:3}};var b={};b.c={d:4};b=a;//a.c.d=3,b.c.d=3 因为b=a后b就指向了a指向的内存,而不是自己开辟的那片内存了。
             var a={c:{d:3}};var b=a;b.c={d:4};//a.c.d=4,b.c.d=4  因为b=a后再修改b的内容就是修改了b指向的那片内存的内容。
             attention:
                      var a=b={}//引用同一个空对象
                      var a={},b={}//a b引用不同对象
                      例如:var a=b={};a.c=1;console.log(b.c)//1
                                var a={},b={};a.c=1;console.log(b.c)//undefined
     
    5、**原型
        委托:在检索属性的时候要是没有在对象中发现此属性名,则向上到此对象的原型中找,直到Object.prototype为止。此过程叫做委托
       创建Object.beget方法:用于创建一个使用原对象作为其原型的新对象。
           if(Object.beget!=='function'){//why
               Object.beget=function(o){
                    var F=function(){};//创建空对象F
                    F.prototype=o;
                   return new F();
               }
           }
           var ob1={
               a:"1",
               b:"2"
           };
           var ob2=Object.beget(ob1);
           ob2.c="3";
           console.log(ob2.__proto__);
           ob1.d="4";
           console.log(ob2.d);
     
    6、反射
          console.log(ob2.hasOwnProperty("a"));//false原型连中的属性返回false
           console.log(ob2.hasOwnProperty("c"));//true
    7、枚举
         两种方法:
         for...in
          for(name in ob2) {
                    if(!ob1.hasOwnProperty(name)) {//只枚举子类的属性
                        console.log(name + ":" + ob2[name]);
                    }
                }
    //方法二
    var propertyList=['p1','p2','p3'];
    var i;
    for(i=0;i<propertyList.length;i++){
         console.log(ob[propertyList[i]]);
    }
    8、删除
        delete 属性
    9、减少全局变量的污染
        其中一个方法是只创造一个全局变量,其他的挂在其上
         var kslite={};
         kslite.meth1=function(){};
         kslite.ob1={};
        闭包解决全局变量,待添加...
     
    typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined“//没有array
    instanceof 更加宽泛:
            var a=new Date(); a instanceof Object//ture 
            a instanceof Date;//true
           typeof a//只返回object
     
    Chapter4:
    1、四种函数调用模式
         函数模式:避免全局this
         构造函数模式:不推荐
         方法模式:绑定到object上
         Apply调用模式:将某个方法应用的另一个对象(this)上 f.call(thisObj,arg1,arg2..) f.apply(thisObj,[arg1,arg2...])
    2、参数
    3、递归
    4、闭包
         函数在调用的时候还能访问它被创建时所处的上下文环境(改善setTimeout,hold住变量;模块模式的私有方法的访问)
    5、回调:异步模式
    6、单例模式
    单例模式是Javascript最基本,最有用的模式之一。它提供了一种将代码组织为一个逻辑单元的手段,这个逻辑单元中的代码通过单一的变量进行访问。单体在Javascipt中有许多用处,可以用来划分命名空间,以减少全局变量的泛滥。还可以用在分支技术中用来处理各浏览器的差异。
    Javascript中单例模式的实现方式有多种,每一种都有自身的优点或缺点。
    惰性加载,也就是先定义,然后在某个地方才创建对象,它常用于那些必须加载大量数据的单体。
            var LazySingleton = function() {
                    var attr = 1, fn = function() {
                    };
                    var obj = {
                        method : function() { fn();
                        },
                        getAttr : function() {
                            return attr;
                        }
                    };
                    function init() {
                        return obj;
                    }

                    return {
                        getInstace : init
                    };
                }();
  • 相关阅读:
    node 命令
    nodejs项目搭建
    linux 安装与配置
    GestureDetector
    activity切换效果
    hadoop
    phonegap 自定义插件
    自定义控件-属性自定义
    zxing demo
    select 语句的执行顺序
  • 原文地址:https://www.cnblogs.com/sidmeng/p/2203681.html
Copyright © 2011-2022 走看看