• javascript 基础


    1. 赋值

    var o = anything ||  ' anythig is undefined';   // o 首先会取值 anything, 但如果anything 未定义, 则会取值 'anything is undefined'.

    var o = anything && 'anything is not undefined';   //o 首先会取值 'anything is not undefined', 但如果 anything 未定义或空或null,则会取值 anything.

    2. 对象字面量

    var martin = {}; 

      // martin 不尽是个对象字面量,而且可以作为管理全局变量的命名空间,

      // 如我们经常这样使用全局变量 var name = 'hello'; var age = 18; 不好管理,现在可以用martin 装起来 martin = {name:'hello',age:18}

    3. 作用域

    function myfunction(){

      this.myname='belong to caller';  // 属性只属于this的绑定者

      alert(myname); //undefined

      var myname='belong to function'; // 变量在js中,其作用域是function级别的,没有块级

      alert(myname); // belong to function

    }

    myfunction();  //这样 window是caller, window 拥有 myname

    var o= {};

    o.toMe=myfunction;

    o.toMe(); //这样 o是 caller, o 拥有 myname

     4. 变量

    内部函数可以访问外部函数的参数和变量,但不能访问其中的 this(如果是以函数形式调用,则可以访问) 和 arguments(有length属性,

    可通过arguments[...]获取对象,但它不是数组对象,没有数组其它方法.)

    function externalFunc (a,b){

      this.e = 5;

      var d = 4;

      //此时 arguments.length = 3

        function internalFunc(){

          alert(a); // 1

          alert(b); // 2

          alert(d); // 4

          alert(this.e); // 若externalFunc以 externalFunc(1,2,3) 调用,则为 5

                                        // 若以 var o ={}; o.callExt=externalFunc; o.callExt(1,2,3) 调用,则为 undefined,

                  // 如果需要访问,则可以在其外部中定义一个变量来装载this,如我们常见的 var self=this;或var that=this; ,这样 alert(that.e);  // 5

          alert(arguments[2]); // undefined , 此时只是自身的 arguments, 而非外部函数的 arguments

        }

        internalFunc();

        alert(arguments[2]); // 3

    }

    externalFunc(1,2,3);

     5. 封装、继承、多态

     //封装
    function Person(name){
        this.name= name;
    };
    Person.prototype.getInfo = function(){
        return "My name is " + this.name;
    };
    
    
    function Student(name){
        this.name=name;
    }
    //继承
    Student.prototype = new Person();
    
    //重写
    Student.prototype.getInfo = function(){
        return "My name is " + this.name
                + " and I am a student.";
    };
    
    function Teacher(name){
        this.name=name;
    }
    
    //继承
    Teacher.prototype = new Person();
    
    //重写
    Teacher.prototype.getInfo = function(){
        return "My name is " + this.name
                + " and I have 40 students.";
    };
    
    //多态
    var persons=[new Student("apple"), new Teacher("mao")];
    
    for (var i=0;i<persons.length;i++){
         
        alert(persons[i].getInfo());
    }

     6. 闭包:它本身是一个函数,而这个函数又引用了其上下文的环境变量

     7. 扩展 jquery

    红色字体部分可取值: $.fn 是针对对象的方法扩展;$ 是针对jQuery的扩展方法

    格式:

    $.extend(boolean,dest,src1,src2...)// true(为默认值): src2 对 src1 深度复制;false:则 src2 对 src1 不深度复制;

    $.extend(dest,src1,src2...) //dest 可以取值:{}, $或jQuery, $.fn

    $.extend($.fn,{
    
      extendName:function(){
    
          var self=this,
    
          $someProperty=$('something');
    
          init=function(){
    
            //todo something
    
          };
    
          someMethod:function(){
    
            //todo something
    
          };
    
          init();
    
        }
    
    });

    这样使用扩展方法:

    $('div').extendName();

    如果是红色部分是$不是$.fn,则这样使用

    $.extendName();

    应用例子

    获取cookie:
    
    function getCookie(sName) {
                var sCookies = document.cookie ;
                if ("string" == typeof(sName)) {
                    var sRE = "(?:; )?"+sName+"=([^;]*);?" ;
                    var reRE = new RegExp(sRE) ;
                    if (reRE.test(sCookies)) {
                        return decodeURIComponent(RegExp["$1"]) ;
                    } else {
                        return null ;
                    }
                } else {
                    return sCookies ;
                }
            }
    重定向
    
    function redirect(){
    
    var userAgent = navigator.userAgent;
            if(userAgent){
                userAgent = userAgent.toUpperCase();
                var mobilePhoneList = ["PAD","IOS","IPHONE","ANDROID","WINDOWS PHONE"];
                for(var i=0,len=mobilePhoneList.length;i<len;i++){
                    if(userAgent.indexOf(mobilePhoneList[i])>-1){
                                        
                            window.location.href = "url";
                        }
                 }
             }
    }
    View Code 

    。。。。。

  • 相关阅读:
    CCS
    CCS
    CCS
    CCS
    CCS
    CCS
    CCS
    CCS
    Java之内部类
    Java之回调模式和ThreadLocal
  • 原文地址:https://www.cnblogs.com/yipeng-yu/p/3236646.html
Copyright © 2020-2023  润新知