从决定转前端开始,就想着写一些东西,记录自己的学习成果,但还由于自己,一直以来都不喜欢记录,所以一直拖到了现在。
1、typeof:检测给定的数据类型:可能返回的字符串有:underfined、string、boolean、number、object、function。
2、jQuery插件可以使用外部的函数和变量,但是这些函数和变量需要进行额外的隐藏保护,一单被外界改写,就有可能破坏jQuery插件的功能,可以使用一个闭包技术构造一个匿名函数,把jQuery插件方法及其私有函数和变量放到该函数中。
(function($){
//插件的方法及其私有的函数变量
})(jQery);
3、this.length>>>0:表示的意思是,如果length没有定义就取0;
4、javascript没有重载,如果定义两个名字相同的函数,则改名字只属于后定义的函数。
5、对于引用类型,我们可以为他添加属性和方法,也可以改变和删除其属性和方法。如:
var person=new object();
person.name="aaa";
alert(person.name); //"aaa"
但是我们不能给基本类型添加属性。
var name="aaa";
name.age=27;
alert(name.age); //undefined
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB2312"> <title>验证Valid ----placeholder</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <style> ul ,li input,label,textarea,div{ padding:0px; margin: 0px; } li{ list-style: none; margin-bottom: 10px; } label{ width: 100px; display: inline-block; } span.emptyhint {color:#999;position:absolute;padding:3px;} </style> </head> <body> <div id="doc3"> <div id="bd" > <div class="section-ctn"> <ul> <li> <label class="k">订单主人:</label> <input type="text" placeholder="请填写订单主人" > </li> <li> <label class="k">订单号:</label> <input type="text" placeholder="请填写订单号"> </li> <li> <label class="k">备注:</label> <textarea type="text" placeholder="请填写备注"></textarea> </li> <li> <label class="k">邮箱:</label> <textarea type="text" placeholder="请填写邮箱"></textarea> </li> </ul> </div> </div> </div> </body> <script> function initPlaceHolders(){ if('placeholder' in document.createElement('input')){ //如果浏览器原生支持placeholder return ; } function target (e){ var e = e||window.event; return e.target||e.srcElement; }; function _getEmptyHintEl(el){ var hintEl=el.hintEl; return hintEl && g(hintEl); }; function blurFn(e){ var el=target(e); if(!el || el.tagName !='INPUT' && el.tagName !='TEXTAREA') return;//IE下,onfocusin会在div等元素触发 var emptyHintEl=el.__emptyHintEl; if(emptyHintEl){ //clearTimeout(el.__placeholderTimer||0); //el.__placeholderTimer=setTimeout(function(){//在360浏览器下,autocomplete会先blur再change if(el.value) emptyHintEl.style.display='none'; else emptyHintEl.style.display=''; //},600); } }; function focusFn(e){ var el=target(e); if(!el || el.tagName !='INPUT' && el.tagName !='TEXTAREA') return;//IE下,onfocusin会在div等元素触发 var emptyHintEl=el.__emptyHintEl; if(emptyHintEl){ //clearTimeout(el.__placeholderTimer||0); emptyHintEl.style.display='none'; } }; if(document.addEventListener){//ie document.addEventListener('focus',focusFn, true); document.addEventListener('blur', blurFn, true); } else{ document.attachEvent('onfocusin',focusFn); document.attachEvent('onfocusout',blurFn); } var elss=[document.getElementsByTagName('input'),document.getElementsByTagName('textarea')]; for(var n=0;n<2;n++){ var els=elss[n]; for(var i =0;i<els.length;i++){ var el=els[i]; var placeholder=el.getAttribute('placeholder'), emptyHintEl=el.__emptyHintEl; if(placeholder && !emptyHintEl){ emptyHintEl=document.createElement('span'); emptyHintEl.innerHTML=placeholder; emptyHintEl.className='emptyhint'; emptyHintEl.οnclick=function (el){return function(){try{el.focus();}catch(ex){}}}(el); if(el.value) emptyHintEl.style.display='none'; el.parentNode.insertBefore(emptyHintEl,el); el.__emptyHintEl=emptyHintEl; } } } } initPlaceHolders(); </script> </html>