js小知识

1.命名变量,尽量少使用全局变量


function CLogin(){

    this.OnDocumentReady = function(){
            _SetHook();

    };
    this.Reg = function() {

   };
   function _SetHook() {
        var login = $("#login");
        if ( login )
        {
            login.off( 'click').on( 'click', _OnButtonClickLogin );;
        }
        else
        {
            //...
        }
    }


    function _OnButtonClickLogin( oEvent )
    {


    }
}

var g_cLogin = new CLogin();


$(function()
{
    // Document is ready
    g_cLogin.OnDocumentReady();
});

}

2.jquery对象命名 var  ojLogin=$("$login");

3.常量命名var  CONST_HERO_LIFE=30;

4.URL接口var sReg_url=" http://account.test/api/captcha";

5.面向对象(一)

  1. function Car(Color,Doors,Mpg) {  
  2.   this.color = Color;  
  3.   this.doors = Doors;  
  4.   this.mpg = Mpg;  
  5.   this.showColor = function() {  
  6.        return this.color;  
  7.   };  
  8. };  
  9. var Car1 = new Car("red",4,23);  
  10. var Car2 = new Car("blue",3,25);  
  11. document.write(Car1.showColor()+"<br/>");//输出:red  
  12. document.write(Car2.showColor());//输出:blue  

6.面向对象(二)

  1. function Car(Color,Doors,Mpg) {  
  2.   this.color = Color;  
  3.   this.doors = Doors;  
  4.   this.mpg = Mpg;  
  5.   this.drivers = new Array("Mike","John");  
  6.   //如果Car对象中的_initialized为undefined,表明还没有为Car的原型添加方法  
  7.   if (typeof Car._initialized == "undefined") {  
  8.          Car.prototype.showColor = function() {  
  9.                 return this.color;  
  10.          };   
  11.          Car._initialized = true//设置为true,不必再为prototype添加方法  
  12.   }  
  13. }  
  14. var Car1 = new Car("red",4,23);//生成一个Car对象  
  15. var Car2 = new Car("blue",3,25);  
  16. Car1.drivers.push("Bill");//向Car1对象实例的drivers属性添加一个元素  
  17. document.write(Car1.drivers+"<br/>");//输出:Mike,John,Bill  
  18. document.write(Car2.drivers);//输出:Mike,John 

(000)判断字符串长度:

function getStrLeng(str){
    var realLength = 0;
    var len = str.length;
    var charCode = -1;
    for(var i = 0; i < len; i++){
        charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode <= 128) {
            realLength += 1;
        }else{
            // 如果是中文则长度加2
            realLength += 2;
        }
    }
    return realLength;
}
var result=getStrLeng("我的nsfs");

console.log(result);

(000)表单中隐藏input方法的使用,可用于存一些参数,例如注册时图片验证码的genenry密文;登陆成功后,返回的u_mid;以便于之后的操作使用

(000)

function _LoadData() {
    var m_sOnloadRequestUrl    = "http://account.local/api/user";
    var ojUmidInput=$(".js-hidden-umid");
    $.ajax({
        type: "GET",
        url: m_sOnloadRequestUrl,
        data: {u_mid:ojUmidInput.val()},
        dataType: "json",
        success: _LoadDataSuccess,
        error: _LoadDataError
    });
    // }
}
//数据刷新成功
function _LoadDataSuccess( ojJsonData, textStatus, jqXHR )
{
    //  页面加载需要显示的信息
    var ojUCUserName         = $("#username");
    var ojSex                = $("#sex");
    var ojUserBirthday       = $("#birthday");
    var ojUserPicture        = $("#user_picture");
    var sUgender;
    var U_nickname;
    var U_birthday;
    if(ojJsonData&&ojJsonData.hasOwnProperty('errorid')
        &&ojJsonData.hasOwnProperty('vdata')
    //&&ojJsonData['vdata'].hasOwnProperty('u_nickname')
    // && ojJsonData['vdata'].hasOwnProperty('u_birth')
    // && ojJsonData['vdata'].hasOwnProperty('u_imgid')
    //&& ojJsonData['vdata'].hasOwnProperty('u_gender')
    ){
        if(0==ojJsonData['errorid']) {
            if(ojJsonData['vdata'].hasOwnProperty('u_nickname'))
            {
                U_nickname = ojJsonData['vdata']['u_nickname'];
                ojUCUserName.text(U_nickname);
            }
            if(ojJsonData['vdata'].hasOwnProperty('u_birth'))
            {
                U_birthday = ojJsonData['vdata']['u_birth'];
                ojUserBirthday.text(U_birthday);
            }
            if(ojJsonData['vdata'].hasOwnProperty('u_gender'))
            {
                sUgender = ojJsonData['vdata']['u_gender'];
                if (1 == sUgender) {
                    ojSex.text("男");
                }
                else if(2==sUgender){
                    ojSex.text("女");
                }
            }
            if(ojJsonData['vdata'].hasOwnProperty('u_imgid')){
                ojUserPicture.css("backgroundImg", ojJsonData['vdata']['u_imgid']);
            }
        }
    }
}
function _LoadDataError( oJqXHR, sStatus, sErrorThrown )
{
    var ojUCUserName         = $("#username");
    var ojSex                = $("#sex");
    var ojUserBirthday       = $("#birthday");
    ojSex.text("加载失败");
    ojUCUserName.text("加载失败") ;
    ojUserBirthday.text("加载失败");
}

(000000)时间戳和int的互转:

( function ($) {
     $.extend({
         myTime: {
             /**
              * 当前时间戳
              * @return <int>        unix时间戳(秒)  
              */
             CurTime:  function (){
                 return  Date.parse( new  Date())/1000;
             },
             /**              
              * 日期 转换为 Unix时间戳
              * @param <string> 2014-01-01 20:20:20  日期格式              
              * @return <int>        unix时间戳(秒)              
              */
             DateToUnix:  function (string) {
                 var  f = string.split( ' ' , 2);
                 var  d = (f[0] ? f[0] :  '' ).split( '-' , 3);
                 var  t = (f[1] ? f[1] :  '' ).split( ':' , 3);
                 return  ( new  Date(
                         parseInt(d[0], 10) ||  null ,
                         (parseInt(d[1], 10) || 1) - 1,
                         parseInt(d[2], 10) ||  null ,
                         parseInt(t[0], 10) ||  null ,
                         parseInt(t[1], 10) ||  null ,
                         parseInt(t[2], 10) ||  null
                         )).getTime() / 1000;
             },
             /**              
              * 时间戳转换日期              
              * @param <int> unixTime    待时间戳(秒)              
              * @param <bool> isFull    返回完整时间(Y-m-d 或者 Y-m-d H:i:s)              
              * @param <int>  timeZone   时区              
              */
             UnixToDate:  function (unixTime, isFull, timeZone) {
                 if  ( typeof  (timeZone) ==  'number' )
                 {
                     unixTime = parseInt(unixTime) + parseInt(timeZone) * 60 * 60;
                 }
                 var  time =  new  Date(unixTime * 1000);
                 var  ymdhis =  "" ;
                 ymdhis += time.getUTCFullYear() +  "-" ;
                 ymdhis += (time.getUTCMonth()+1) +  "-" ;
                 ymdhis += time.getUTCDate();
                 if  (isFull ===  true )
                 {
                     ymdhis +=  " "  + time.getUTCHours() +  ":" ;
                     ymdhis += time.getUTCMinutes() +  ":" ;
                     ymdhis += time.getUTCSeconds();
                 }
                 return  ymdhis;
             }
         }
     });
})(jQuery);

(000)substr              str.substr(0,3)      str.substr.(-2)

(000)页面    尽量不用form   会乱   用div   section   布局

(000)var arr=[1,2,3,4,5,6]

               arr.length  不能直接放在条件语句中判断   

               条件语句中的length是判断是否存在,若存在,length为1,

               要定义变量,var  len=arr.length,

               if(len==1){}else if(len>1){}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值