javasript学习笔记

if(typeof(temp2)=='undefined'){
   alert("aaa");
 }
  if(""+temp2=='undefined') {
    alert("fff");
  }
静态函数只能取到静态值
<script type="text/javascript">
   
   var t = 11;
   function para(){
      this.b=1;
   }
   para.prototype.c=2;
   para.a=10;
   
   para.haha = function(){
     alert(this.a);
     alert(this.c);
 alert(this.b);
 alert(this.t);
  };
  para.haha();
  </script>
 
   var t = 11;
   function para(){
      this.b=1;
   }
   para.prototype.c=2;
   para.a=10;
   para.haha = function(){
     function temp(){
     alert(this.a);     this 指的是全局函数不在是para
     alert(this.t);
 }
    temp();
  };
  para.haha();
  
  
  
  var x = "global"; 
function f() { 
    var x = "local"; 
    alert(this.x);
} 
    f();  //global      函数this永远是指全局变量,函数和对象不一样,要和闭包区分
 
 <script type="text/javascript">
   
   var t = 11;
   function para(){
    this.a=10;
   }
  para.b=20;
  para.getPoo=function(){
     alert(this.b);
     alert(this.a);
     alert(this.t);
  }
 var result = para.getPoo;   //重新赋值给其他变量,this指向全局变量
 result();
  </script>
  
  
  
   var d = $('<div />').appendTo($(document.body));
   d.html(data).omDialog
  
  
  
  
   var tpl = '<tr>' + 
                  '<td><input name="pName{0}" type="text" /></td>' + 
                  '<td><input name="pValue{0}" type="text" /></td>' + 
                  '<td><a οnclick="removeAttr(this);">删除</a></td>' + 
              '</tr>';
    function addCAttr() {
        cIndex++;
        var r = $(tpl.format(cIndex));
        r.find('input').each(function() {
            var _el = $(this);
            _el.keyup(function() {
                validateNotEmpty(_el);
            }).blur(function() {
                validateNotEmpty(_el);
            });
        });
        $('#attrTbl tbody').append(r);
    }
 <script type="text/javascript">
 
 if (!window.Monitor) {
     window.Monitor = {
     _id : 1,
     id : function() {
        return this._id++;
}
   } 
   
  (function(M){
      M.ds = {             //给Monitor增加了ds对象
     a:"a-1",
     b:"b-1"
  }
  })(Monitor);
 window.$m = Monitor.ds;  这里声明成window对象,可以在DOM元素里直接引用
                           如果是var,只能在js里引用,这样初始化动作,事件触发动作都能包装在模块里
alert($m.a);  alert($m.b);  
  </script>
  
  <script>
    window.$m = Monitor.panel;
    $m.baseUrl = '${contextPath}';
    $m.resUrl = '${resBase}';
    $m.expressInstall=$m.resUrl+"/scripts/Charts/flash/expressInstall.swf";
    $m.amlineChart=$m.resUrl+"/scripts/Charts/flash/amline.swf";
    $m.panles = eval('${panels}');
    $m.fixLength = '${size}';
    var map = new Monitor.HashMap();
    map.put("JTAMonitorServiceImpl",new $m.flashParam("/protect/monitor/jta/statistics","/scripts/charts/config/line.xml"));
    $m.watchMap=map;
    $m.initPanels();
</script>
 <script type="text/javascript">
 
var x = "global"; 
function f() { 
    var x = "local"; 
    function g() { alert(x); }    //alert(this.x); 闭包中this是指全局变量,闭包返回是指内存不释放
                              //这里是指词法作用域,找到函数里的x
    g(); 
} 
f(); // Calling this function displays "local"
  </script>
  
  
  
<script type="text/javascript">
 function Bar() {
    return 2;
}
var t =new Bar(); // 返回新创建的对象
alert(t);
var b = Bar();  //返回值2
alert(b);
</script>
 <script type="text/javascript">
   //对象嵌套声明
    var o = {
   a:"1",
   b:"2",
   c:{
      c1:"cc"
   }
}
alert(o.a);
alert(o.c.c1);
</script>
 <script type="text/javascript">
 var x = 1;
    
 if (true) {
   var x = 2;
}
 alert(x); //2 作用域都是全局,不是函数里的作用域
</script>
 

把函数本身this改成形参上下文
Function.prototype.createDelegate = function(context) {
   var _t = this;
    return function() {
   _t.apply(context, arguments);
   };
};


String.prototype.format = function(args) {
var str = this;
if (arguments.length == 0) {
return str;
}
for (var i = 0; i < arguments.length; i++) {
var re = new RegExp('\\{' + i + '\\}', 'gm');
str = str.replace(re, arguments[i]);
}
return str;
};

这里是javascript中制作滚动代码的常用属性
页可见区域宽: document.body.clientWidth;
网页可见区域高: document.body.clientHeight;
网页可见区域宽: document.body.offsetWidth   (包括边线的宽);
网页可见区域高: document.body.offsetHeight (包括边线的宽);
网页正文全文宽: document.body.scrollWidth;
网页正文全文高: document.body.scrollHeight;
网页被卷去的高: document.body.scrollTop; 被盖住的高度
网页被卷去的左: document.body.scrollLeft;
网页正文部分上: window.screenTop;
网页正文部分左: window.screenLeft;
屏幕分辨率的高: window.screen.height;
屏幕分辨率的宽: window.screen.width;
屏幕可用工作区高度: window.screen.availHeight;
this.container.scroll(function() {
                var scrollHight = _t.container[0].scrollHeight;
                var scrollTop = _t.container[0].scrollTop;
                var height = _t.container.height();//固定的高度,才能使下述等式成立,如果div不断增长没法计算,一般让div长度固定,overflow:sroll
                // 当滚动条距离底部100像素的时候加载后续数据
                if(scrollTop + height >= scrollHight - 100 && _t._hasMoreData) {
                    _t.fetchLogs();
                }
            });

JS构造函数 
var Class = {
    create: function() {
        return function() {
            this.initialize.apply(this , arguments);
        }
    }
}
// Class使用方法如下
var A = Class.create();
A. prototype={
    initialize:function(v){
        this .value=v;
    }
    showValue:function(){
        alert(this.value);
    }
}
var a = new A(‘helloWord!');
a. showValue();//弹出对话框helloWord!

弹出层可以 先建立一个DIV,Url指向一个页面,把页面里东西
取出来放入这个DIV里,由于是动态加载,这个层关闭时要销毁
里的东西
function modifyListener(name) {
        $.ajax({
            url : '${baseUrl}/modify',
            data : {
                name : name
            },
            success : function(data) {
                mIndex = -1;
                var d = $('<div />').appendTo($(document.body));
                d.html(data).omDialog({ 
;

(function($) {
/**
 * 
 * 添加字符串的format方法,用于格式化字符串。
 * 
 * 示例:"a{0}b{0}c{1}".format('***', 123)的结果为:a***b***c123
 * 
 */
String.prototype.format = function(args) {
var str = this;
if (arguments.length == 0) {
return str;
}
for (var i = 0; i < arguments.length; i++) {
var re = new RegExp('\\{' + i + '\\}', 'gm');
str = str.replace(re, arguments[i]);
}
return str;
};
/**
 * 
 * 添加字符串的trim方法,用于去掉字符串开头和结尾的空格。
 * 
 * 示例:" a a bc ".trim()的结果为:a a bc
 * 
 */
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
};
Function.prototype.createDelegate = function(context) {
var _t = this;
return function() {
_t.apply(context, arguments);
};
};
if (!window.AASMonitor) {
window.AASMonitor = {
_id : 1,
id : function() {
return this._id++;
},
mixin : function(target, source) {
for (k in source) {
target[k] = source[k];
}
return target;
},
         markFldError : function(el, msg) {
this.clearFldError(el);
if (msg) {
$(el).addClass('error');
var em = $('<span class="errorMsg">{0}</span>'.format(msg));
$(el).after(em);
$(el).mouseover(function() {
em.show();
}).mouseout(function() {
em.hide();
});
}
},
clearFldError : function(el) {
var next = $(el).next();
while (next.hasClass('errorMsg')) {
next.remove();
next = $(el).next();
}
$(el).removeClass('error');
$(el).unbind('mouseover').unbind('mouseout');
},
info : function(content) {
$.omMessageTip.show({
content : content,
timeout : 2000
});
},
warn : function(content) {
$.omMessageTip.show({
content : content,
type : 'warn'
});
},
error : function(content) {
$.omMessageTip.show({
content : content,
type : 'error'
});
},
HashMap : function() {
var size = 0;
var entry = new Object();
this.put = function(key, value) {
if (!this.containsKey(key)) {
size++;
}
entry[key] = value;
};
this.get = function(key) {
if (this.containsKey(key)) {
return entry[key];
} else {
return null;
}
};
this.remove = function(key) {
if (delete entry[key]) {
size--;
}
};
this.containsKey = function(key) {
return (key in entry);
};
this.containsValue = function(value) {
for (var prop in entry) {
if (entry[prop] == value) {
return true;
}
}
return false;
};
this.values = function() {
var values = new Array(size);
for (var prop in entry) {
values.push(entry[prop]);
}
return values;
};
this.keys = function() {
var keys = new Array(size);
for (var prop in entry) {
keys.push(prop);
}
return keys;
};
this.size = function() {
return size;
};
}
};
}
})(jQuery);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值