JavaScript实战总结
序言
javascript中数组的22种方法:http://www.cnblogs.com/xiaohuochai/p/5682621.html
1.js闭包
2.eval函数
eval(“字符串”) 将接收过来的字符串转为js表达式 eval(“json字符串”)
3.百度分享
<div class="bdsharebuttonbox" data-tag="share_1"> <a class="bds_mshare" data-cmd="mshare"></a> <a class="bds_qzone" data-cmd="qzone" href="#"></a> <a class="bds_tsina" data-cmd="tsina"></a> <a class="bds_baidu" data-cmd="baidu"></a> <a class="bds_renren" data-cmd="renren"></a> <a class="bds_tqq" data-cmd="tqq"></a> <a class="bds_more" data-cmd="more">更多</a> <a class="bds_count" data-cmd="count"></a> </div> <script> window._bd_share_config = { common : { bdText : '自定义分享内容', bdDesc : '自定义分享摘要', bdUrl : '自定义分享url地址', bdPic : '自定义分享图片' }, share : [{ "bdSize" : 16 }], slide : [{ bdImg : 0, bdPos : "right", bdTop : 100 }], image : [{ viewType : 'list', viewPos : 'top', viewColor : 'black', viewSize : '16', viewList : ['qzone','tsina','huaban','tqq','renren'] }], selectShare : [{ "bdselectMiniList" : ['qzone','tqq','kaixin001','bdxc','tqf'] }] } with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?cdnversion='+~(-new Date()/36e5)]; </script>
4.打印
<a href="javascript:window.print()">打印</a>
5.闭包
闭包:有一个函数 A 中有一个函数或者对象 B,那么函数或者对象 B 可以访问函数 A 中的数据,那么函数 A 的作用域就形成了闭包。
活着的人从死去的人那里偷来了东西,让那些东西不随死去的人而消失。活着的人拥有了这些东西,这些东西的寿命也因此边长了。
这是JavaScript为了应对天马行空的自由度产生的bug而打的补丁!
这比如虽然有点不雅,但也只是为了看官便于理解,请勿介意。好,咱们还是看看代码分析:
<script> function oldMan(){ var money=999999;// 老人的财富 //老人有一个年轻的儿子 return function young(){ console.log("儿子要花老子的钱"+money+"美刀"); } } var y=oldMan();//老人将儿子放出来之后就挂了,oldMan函数运行完成,出栈了!! y();//儿子开始活动了,儿子竟然有老人的钱 </script>
闭包用途
1.来替代全局变量 避免造成变量污染
6.json字符串格式转换
eval函数
1 function myEval() { 2 var str = '{ "name": "Violet", "occupation": "character" }'; 3 var obj = eval('(' + str + ')'); 4 alert(obj.toJSONString()); 5 }
parseJSON()
1 function myEval() { 2 var str = '{ "name": "Violet", "occupation": "character" }'; 3 var obj = str.parseJSON(); 4 alert(obj.toJSONString()); 5 }
7.jquery中prop()方法和attr()方法的区别
是有true,false两个属性使用prop()
.prop("selected", true); .attr("selected", "selected");
8.模拟表单提交
/*******************模拟post提交*******************/ var postSubmit = function (formID, URL, paramObjs, targetName) { $("#" + formID).remove(); var temp = $("<form>"); temp[0].action = URL; temp[0].method = "post"; temp[0].target = targetName; temp[0].style.display = "none"; temp[0].id = formID; if (paramObjs) { for (var i = 0; i < paramObjs.length; i++) { temp[0].appendChild(paramObjs[i]); } } document.body.appendChild(temp[0]); temp[0].submit(); return temp; }; /*******************建立控件*******************/ var createElement = function (eTag, eType, eName, eValue) { var tempE = document.createElement(eTag); tempE.type = eType; tempE.name = eName; tempE.value = eValue; return tempE; }; //使用示例 var url = REF.getVirtualPath() + "/Controller/Action"; var pArr = new Array(); pArr.push(createElement("input", "hidden", "productType", "AREA")); postSubmit("areaAnalysisSubmitForm", url, pArr, "_blank");
9.封装JavaScript源文件的全部内容到一个函数块
(function($) { /* jQuery plugin code referencing $ */ } )(jQuery);