- 浏览: 241579 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
heartneo:
破解原作真是太厉害了。
Spket 1.6.18的简单破解 -
mwp1115:
谢谢,现在官方的demo代码还是jdk1.2的
Swing JTreeTable范例 -
bulktree:
Spket 谢谢了,js格式化 行宽太小了,你这个帮了我很大的 ...
Spket 1.6.18的简单破解 -
REGAL2T:
谢谢, 可以使用了
Spket 1.6.18的简单破解 -
wuwei1616:
我想问下lz 我生成了 wsdl文件 我用客户端去调用 怎么总 ...
调用CXF工具 生成 WSDL
/** * 判断客户端浏览器类型的变量 */ var isIE = (navigator.appName == 'Microsoft Internet Explorer'); var isNetscape = (navigator.appName == 'Netscape'); /** * 清空页面所有输入框的内容,包括文本和密码 */ function clearInput() { var allInput = document.getElementsByTagName("input"); for(var i=0; i<allInput.length; i++) { var tagBody = allInput[i]; if (tagBody.getAttribute("type") == "text"||tagBody.getAttribute("type") == "password") { tagBody.value= ""; } } } /** * 检验字符串是否为空 * @param {String} 字符串 * @return {bool} 是否为空 */ function isEmpty(input) { if( input==null || trim(input).length == 0 || input == 'null') return true; else return false; } /** * 检查字符串的长度 * @param {String} 字符串 * @param {Integer} 要比较的长度 * @return {bool} true:变量长度<给出的长度;false:变量长度>=给出的长度 */ function isShorter(str,reqlength) { if( str.length<reqlength ) return true; else return false; } /** * 检查字符串是否是整数 * @param {String} 字符串 * @return {bool} 是否是整数 */ function isInteger( s ) { var isInteger = RegExp(/^[0-9]+$/); return ( isInteger.test(s) ); } /** * 检查字符串是否是字母 * @param {String} 字符串 * @return {bool} 是否是字母 */ function isChar( s ) { var isInteger = RegExp(/^[a-zA-Z]+$/); return ( isInteger.test(s) ); } /** * 判断输入变量是否是实数 * @param {String} 要检查的变量值 * @return {bool} 是否为实数 */ function isDecimal( s ) { var isDecimal = RegExp(/^([0-9]+(\.?))?[0-9]+$/); return ( isDecimal.test(s) ); } /** * 判断输入变量是否是数字或者字母 * @param {String} 要检查的变量值 * @return {bool} 是否为数字或者字母 */ function isIntChar( s ) { var isIntChar = RegExp(/^[a-zA-Z0-9]+$/); return ( isIntChar.test(s) ); } /** * 判断输入变量是否是数字或者字母或者特殊字符 * 特殊字符:|_ - * & % $ # @ ! ~ ^ ( ) * @param {String} 要检查的变量值 * @return {bool} 是否为数字或者字母或者特殊字符 */ function isIntCharSpecial( s ) { var isIntCharSpecial = RegExp(/^[a-zA-Z0-9(\|)(\_)(\-)(\*)(\&)(\%)(\$)(\#)(\@)(\!)(\~)(\^)(\()(\))]+$/); return ( isIntCharSpecial.test(s) ); } /** * 判断输入变量是否包含数字或者字母 * @param {String} 要检查的变量值 * @return {bool} 是否包含数字或者字母 */ function containIntChar( s ) { var containIntChar = RegExp(/[a-zA-Z0-9]+/); return ( containIntChar.test(s) ); } /** * 判断输入变量是否包含特殊字符 * 特殊字符:~ ! @ # $ % ^ & * ( ) - _ + = [ ] { } | \ ; : ' " , . / < > ? < * @param {String} 要检查的变量值 * @return {bool} 是否包含特殊字符 */ function containSpecial( s ) { var containSpecial = RegExp(/[(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\?)(\)]+/); return ( containSpecial.test(s) ); } /** * 检查字符串是否为合法email地址 * @param {String} 字符串 * @return {bool} 是否为合法email地址 */ function isEmail(s) { var isEmail = RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/); return ( isEmail.test(s) ); } /** * 若为null则替换为指定的字符串 * @param {String} 要测试的字符串 * @param {String} 为空时替换的字符串 * @return {String} */ function nvl(s,replaceString) { if ( isEmpty(s) ) return replaceString; else return s; } /** * 将页面中或指定表格ID的所有checkbox置为选中状态或全不选状态 * @param {bool} choose: true选中;false不选 * @param {string} tableID:要指定的表格ID */ function selectAll(choose,tableID) { var allCheck; if (arguments.length == 1) { allCheck = document.getElementsByTagName("input"); }else{ allCheck = document.getElementById(tableID).getElementsByTagName("input"); } for(var i=0; i<allCheck.length; i++){ var tagBody = allCheck[i]; if (tagBody.getAttribute("type") == "checkbox") { tagBody.checked= choose; } } } /** * 取得页面中的所有选中的checkbox的id列表 * @return {String} 以'|'分隔的选中id,如果没有选中任何checkbox则返回空串 */ function getCheckList() { var checkList = ''; var allCheck = document.getElementsByTagName("input"); for(var i=0; i<allCheck.length; i++) { var tagBody = allCheck[i]; if (tagBody.getAttribute("type") == "checkbox") { if ( tagBody.checked && !isEmpty(tagBody.id) ) { checkList += tagBody.id + '|'; } } } return checkList; } /** * 取得指定的radio按钮的选中值 * @param {String} radio按钮ID * @return {String} radio按钮的选中值 */ function getRadioValue(radioName) { var radioList = document.getElementsByName(radioName); for (var i = 0; i < radioList.length; i++) { if( radioList[i].checked == true ) { return radioList[i].value; } } } /** * 检验日期是否符合YYYYMMDD的格式,是否合法 * @param {String} 日期字符串 * @return {bool} 是否是合法日期 */ /* function isDate(dateInput) { var inputYear = dateInput.substring( 0, 4 ); var inputMonth = parseInt(dateInput.substring( 4, 6 ))-1; var inputDay = dateInput.substring( 6, 8 ); var dateTest = new Date(inputYear,inputMonth,inputDay); var testYear = dateTest.getFullYear(); var testMonth = dateTest.getMonth(); var testDay = dateTest.getDate(); var isValidateDate = (inputYear == testYear && inputMonth == testMonth && inputDay == testDay ); return isValidateDate; }*/ function isDate(param) { var pattern = /^\d+$/; if ( param.length != 8 ) { return false; } if(!pattern.test(param)) { return false; } sYear = param.substring( 0, 4 ); sMonth = param.substring( 4, 6 ); sDay = param.substring( 6, 8 ); if ( ( eval( sMonth ) < 1 ) || ( eval( sMonth ) > 12 ) ) { return false; } var leapYear = ((( sYear % 4 == 0 ) && ( sYear % 100 != 0 )) || ( sYear % 400 == 0 )) ? true : false; var monthDay = new Array(12); monthDay[0] = 31; monthDay[1] = leapYear ? 29 : 28; monthDay[2] = 31; monthDay[3] = 30; monthDay[4] = 31; monthDay[5] = 30; monthDay[6] = 31; monthDay[7] = 31; monthDay[8] = 30; monthDay[9] = 31; monthDay[10] = 30; monthDay[11] = 31; if ( ( eval( sDay ) < 1 ) || ( eval( sDay ) > monthDay[eval(sMonth)-1] ) ) { return false; } return true; } /** * 检查日期选择的格式及区间 */ function checkDate(beginDate,endDate){ if (! isDate(beginDate)) { alert("起始日期不正确"); beginDate.focus(); return true; } if (! isDate(endDate)) { alert("终止日期不正确"); beginDate.focus(); return true; } if((beginDate)>(endDate)){ alert("截止日期应大于或等于起始日期,请重新输入"); return true; } if (parseInt(endDate, 10) < parseInt(beginDate, 10) || ! dateInterval(beginDate,endDate, 90)) { alert("终止日期应在起始日期之后90天内"); return true; } } function isDate1(dateInput){ var inputYear = dateInput.substring( 0, 4 ); var inputMonth = parseInt(dateInput.substring( 4, 6 )); var dateTest = new Date(inputYear,inputMonth); var testYear = dateTest.getFullYear(); var testMonth = dateTest.getMonth(); var isValidateDate = (inputYear == testYear && inputMonth == testMonth ); return isValidateDate; } /** * 去掉字符串前后的空格 * @param {String} 字符串 * @return {String} 去除空格后的字符串 */ function trim(input) { return input.replace(/(^\s*)|(\s*$)/g, ""); } /** * 检查时间间隔是否在规定间隔之内 * @param {String} 开始日期 * @param {String} 结束日期 * @param {Integer} 间隔,单位为天 * @return {bool} 是否在规定间隔之内 */ function dateInterval(startDate,endDate,interval) { var date1 = new Date(eval(startDate.substring(0,4)),eval(startDate.substring(4,6))-1,eval(startDate.substring(6,8))); var date2 = new Date(eval(endDate.substring(0,4)),eval(endDate.substring(4,6))-1,eval(endDate.substring(6,8))); if ( ( date2 - date1 ) / 86400000 > eval(interval) - 1 ) return false; return true; } /** * 控制text域的最大输入长度 * 用法:onblur="checkLength(this,要控制的长度);" * @param {Object} text对象 * @param {Integer} 要控制的长度 */ function checkLength(v,l){ var s = v.value; var totalLength = 0; var charCode; for(i=0;i<s.length;i++) { charCode = s.charCodeAt(i); if (charCode < 0x007f) { totalLength ++; } else if ((0x0080 <= charCode) && (charCode <= 0x07ff)) { totalLength += 2; } else if ((0x0800 <= charCode) && (charCode <= 0xffff)) { totalLength += 3; } } if( l>=totalLength ) { return true; } else { //alert("该输入项插入值过长!最多输入"+l+"个字节"); v.value = ""; v.focus(); return false; } } function alterButton(acceptBtId,ipt){ var accBtn = document.getElementById(acceptBtId); if(accBtn) if(ipt.value.length!=0){ accBtn.disabled = true; }else{ accBtn.disabled = false; } } /** * 控制textarea域的最大输入长度 * 用法:onblur="checkAreaLength(this,要控制的长度);" * @param {Object} textarea对象 * @param {Integer} 要控制的长度 */ function checkAreaLength(v,l){ var s= v.value; var totalLength = 0; var charCode; for(i=0;i<s.length;i++) { charCode = s.charCodeAt(i); if (charCode < 0x007f) { totalLength ++; } else if ((0x0080 <= charCode) && (charCode <= 0x07ff)) { totalLength += 2; } else if ((0x0800 <= charCode) && (charCode <= 0xffff)) { totalLength += 3; } } if(totalLength>l){ //alert("该输入项插入值过长!最多输入"+l+"个字节"); v.value = ""; v.focus(); return false; } return true; } /** * 修改指定tag的样式 * @param {String} tag的id * @param {String} 新的样式 */ function changeClass(tagId,newClassName) { document.getElementById(tagId).className = newClassName; } /** * 清空一个表的内容 * @param {String} 表体的ID */ function cleanTableBody(tbodyName) { var tbody = document.getElementById(tbodyName); var rows=tbody.getElementsByTagName("TR"); var size = rows.length; for(var i=0;i<size;i++) { tbody.deleteRow(0); } } /** * 更改一个对象的选中状态,可以用于radio和checkBox * @param {String} 对象的ID */ function doCheck(objectID) { var checkObj = document.getElementById(objectID); if(checkObj.checked){ checkObj.checked = false; }else{ checkObj.checked = true; } } /** * 将yyyymmddhhmiss方式显示的日期转为中文显示 * @param {String} yyyymmddhhmiss格式的时间 */ function getChineseDateTime(dateTime) { if( isEmpty(dateTime) || dateTime.length < 14 ) { return dateTime; } var returnDate = dateTime.substr(0,4)+"年"+dateTime.substr(4,2)+"月"+dateTime.substr(6,2)+"日"; var returnTime = dateTime.substr(8,2)+":"+dateTime.substr(10,2)+":"+dateTime.substr(12,2); return returnDate+returnTime; } /** * 检验日期是否符合YYYYMM的格式,是否合法 * @param {String} 日期字符串 * @return {bool} 是否是合法日期 */ function isYearMonth(param) { var pattern = /^\d+$/; if ( param.length != 6 ) { return false; } if(!pattern.test(param)) { return false; } sYear = param.substring( 0, 4 ); sMonth = param.substring( 4, 6 ); if ( ( eval( sMonth ) < 1 ) || ( eval( sMonth ) > 12 ) ) { return false; } return true; } /** * 高亮关键字 * @param {String} 搜索结果字符串 * @param {String} 搜索关键字 * @return {String} 关键字高亮的html字符串 */ function highLightKeyword(content,key) { var SPAN_BEGIN_TAG = '<span class="highLight">'; var SPAN_END_TAG = '</span>'; var htmlString = ''; var searchStartPos = 0; while(true) { var keyStartPos = content.indexOf(key,searchStartPos); if( keyStartPos<0 ) { htmlString += content.substring(searchStartPos); return htmlString; } var keyEndPos = keyStartPos+key.length; htmlString += content.substring(searchStartPos,keyStartPos); htmlString += SPAN_BEGIN_TAG; htmlString += key; htmlString += SPAN_END_TAG; searchStartPos = keyEndPos; } } /** * 获取账号列表中选中的账号 * @param {String} 账号列表的id * @return {String} 账号 */ function getAccountNo( selectId ) { var selectValue = document.getElementById(selectId).value; if ( !isEmpty(selectValue) ) { return (selectValue.split('|'))[0]; } return ''; } /** * 获取账号列表中选中的账户名称 * @param {String} 账号列表的id * @return {String} 账户名称 */ function getAccountName( selectId ) { var selectValue = document.getElementById(selectId).value; if ( !isEmpty(selectValue) ) { return (selectValue.split('|'))[1]; } return ''; } /** * 获取账号列表中选中的账户开户网点 * @param {String} 账号列表的id * @return {String} 账户开户网点 */ function getAccountOpenNode( selectId ) { var selectValue = document.getElementById(selectId).value; if ( !isEmpty(selectValue) ) { return (selectValue.split('|'))[2]; } return ''; } /** * 获取账号列表中选中的账户币种 * @param {String} 账号列表的id * @return {String} 账户币种 */ function getAccountCurrency( selectId ) { var selectValue = document.getElementById(selectId).value; if ( !isEmpty(selectValue) ) { return (selectValue.split('|'))[3]; } return ''; } /* * 显示提示 */ function showTip(tipId,tipText){ document.getElementById(tipId).innerHTML = tipText; changeClass(tipId,"tip_on"); } /* * 隐藏提示 */ function hideTip(tipId){ document.getElementById(tipId).innerHTML = " "; changeClass(tipId,"tip_off"); } /* * 隐藏所有的提示 */ function hideAllTip(){ var divArr = document.getElementsByTagName("div"); for(i = 0 ; i < divArr.length ; i++){ var divId = divArr[i].id; if(!isEmpty(divId) && divId.substring(divId.length-3,divId.length) == "Tip") hideTip(divId); } } /* * 主交易区跳转到指定的action * @param {String} action */ function linkTo(actionUrl) { window.top.doTranDispatch(actionUrl); } /* * 根据页面实际高度更新框架大小 */ function resize() { window.top.sizeChange(); } /* * 根据json数据生成输入表单用的html * 示例:getInputHtmlFromJson({name:'mvmouse'},'test') = '<input type="hidden" name="test.name" value="mvmouse"/>' * @param {json} jsonInput * @param {String} input的name的前缀 * @return {String} 生成的html */ function getInputHtmlFromJson( jsonInput,namePrefix ) { var resultHtml = ''; var prefixString ='<input type="hidden" name="'+namePrefix; for (var key in jsonInput ) { var value = jsonInput[key]; resultHtml += prefixString + key + '" value="'+value+'" />'; } return resultHtml; } /* * 修改下拉单中内容 */ function changeSelectItem(selectName,selectValue){ var options=$(selectName).options; for(var i=0;i<options.length;i++){ var optionValue=options[i].value.split("|"); if(optionValue[0]==selectValue){ options[i].selected=true; return true; } } return false; } /** * 验证指定的checkbox是否全部没有选中 * @param {String} checkBoxName--checkbox对象的Name * @return {boolean} 验证结果--true/全部没选中;false/有选中的 */ function noneChecked(checkBoxName) { var checkObj = document.getElementsByName(checkBoxName); if (checkObj.length) { for (var i = 0;i < checkObj.length;i ++) { if (checkObj[i].checked) { return false; } } return true; } else { return ! checkObj.checked; } } /** * 生成一个隐藏域,放到Form提交表单中 * @param {Form} formObj--提交表单对象 * @param {String} name--隐藏域的名称 * @param {String} value--隐藏域的值 */ function createHiddenField(formObj, name, value) { var field = document.createElement("input"); field.type = "hidden"; field.name = name; field.value = value; formObj.appendChild(field); } /** * 设置css换肤 * @param {title} 样式的名称 */ function setActiveStyleSheet(title) { var i,a; if (title) { for(i=0; (a = document.getElementsByTagName('link')[i]); i++) { if(a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title')) { a.disabled = true; if(a.getAttribute('title') == title) a.disabled = false; } } } } /** * 禁用所有button */ function disableAllButton() { var inputObjs=document.getElementsByTagName("input"); for(i=0;i<inputObjs.length;i++) { if(inputObjs[i].type == "button" || inputObjs[i].type == "reset" || inputObjs[i].type == "submit") { inputObjs[i].disabled=true; } } } /** * 启用所有button */ function enableAllButton() { for(i=0;i<document.all.length;i++) { if(document.all(i).type == "button" || document.all(i).type == "reset" || document.all(i).type == "submit") { document.all(i).disabled=false; } } } /** *是否为规范的电话号码 */ function isTelephone(s) { if(isEmpty(s) || !isInteger(s) || s.length > 12) { alert('电话号码必须为12位以内的数字!'); return false; } return true; } /** *格式化时间 */ function formatDate(time) { var s=""; if(time.length>8){ s=time.substring(0,4); s=s+"-"; s=s+time.substring(4,6); s=s+"-"; s=s+time.substring(6,8); s=s+" "; s=s+time.substring(8,10); s=s+":"; s=s+time.substring(10,12); s=s+":"; s=s+time.substring(12,14); return s; }else if(time==""){ return s; }else{ s=time.substring(0,4); s=s+"-"; s=s+time.substring(4,6); s=s+"-"; s=s+time.substring(6,8); return s; } }
发表评论
-
div & js 模拟select组件
2011-08-26 11:15 1418<!DOCTYPE html PUBLIC " ... -
文本框输入限制
2011-07-15 15:33 1022【转自】http://www.blogjava.net/sy1 ... -
界面输入输入法全角半角的处理
2011-02-26 11:46 1732全角字符一半用于排版等,在编程中通常是禁止使用的。而用户错误的 ... -
货币符号转换-JS
2011-02-17 14:34 3994/* * 货币符号转汉语,如CNY 人民币 */ f ... -
JEE中上下文地址的获取path && basePath
2010-10-22 17:00 1065String path = request.getContex ... -
SSH2示例
2010-09-16 16:44 1292两个示例,见附件。 DROP TABLE IF EXISTS ... -
JBoss JBPM4请假流程示例
2010-09-16 16:11 1306见附件 -
Struts权限过滤器
2010-09-16 16:09 830见附件 -
hibernate官方入门教程 (转载)
2010-09-03 15:04 1232hibernate官方入门教程第 ... -
MySQL的中文UTF8乱码问题
2010-09-01 16:34 1509乱码的发生防不胜防:插件开发配置文件有时候会产生乱码,java ... -
使用CXF: Java 2 WSDL
2010-04-08 09:00 2104java编程:纯java代码进行java类向wsdl文件的转换 ... -
调用CXF工具 生成 WSDL
2010-03-18 16:12 18658在做WebService的时候,生 ... -
HQL 语言基本用法
2008-01-10 21:33 12321.实体查询 String hql = " fro ... -
中文显示1-编码过滤器
2008-01-08 21:36 1320在做java开发时,我们会经常碰到中文显示出错的问题,解决方法 ... -
在Struts中使用Validator验证框架详解
2008-01-03 20:54 2071Validatro框架以成为Jakarta ... -
Struts验证——Validator验证框架
2008-01-03 20:44 2013Validator验证框架: V ...
相关推荐
三、14个常用JavaScript函数介绍 1. **显示/隐藏元素**:`ShowElement`和`HideElement`,用于控制DOM元素的可见性。 2. **弹出警告框**:`Alert`,显示带有指定消息的警告对话框。 3. **验证输入**:`ValidateInput`...
本篇文章将深入探讨几个常用的JavaScript函数,这些函数在实际开发中非常常见且实用。 1. `console.log()` 这是开发者调试代码时最常用的函数之一。它用于在浏览器的控制台输出信息,帮助开发者查看程序执行过程中...
常用Jquery语句 常用javascript函数 可以直接使用
这篇自我总结涵盖了JavaScript函数的16到30个常用知识点,旨在帮助开发者更好地理解和应用这些功能强大的工具。 1. **数组操作** - `slice()`:用于从原数组中提取一个子数组并返回,不会改变原数组。 - `splice...
以下是一些 ASP.NET 中常用的 JavaScript 函数,它们对于在页面上提供交互性和数据处理至关重要。 1. `Math.abs()` 函数:这个函数用于获取数字的绝对值。在 ASP.NET 中,如果你需要处理用户输入的数据或者计算时,...
标题《自己封装的常用javascript函数分享》中提到的知识点主要包括以下几个方面: 1. Cookie操作函数封装 - `setCookie(name, value, iDay)`:设置cookie的值,可自定义有效期天数。如果`iDay`参数为`false`,则...
一、JavaScript常用函数 1. 数组操作函数 - `push()`: 向数组末尾添加一个或多个元素,并返回新长度。 - `pop()`: 删除并返回数组最后一个元素。 - `shift()`: 删除并返回数组第一个元素。 - `unshift()`: 在...
本文将详细讲解JavaScript中的几个常见判断函数,这些函数可以帮助开发者进行数据类型的检查和验证。 首先,我们来看`DataLength`函数。这个函数的主要功能是计算字符串的长度,但与JavaScript原生的`length`属性...
### JavaScript常用判断函数知识点 #### 一、概述 在JavaScript编程中,判断函数是非常重要的工具,可以帮助开发者快速地对各种数据类型进行验证和处理。本文将详细介绍几个常用的JavaScript判断函数,包括`...
这个"javascript常用函数集合"涵盖了JavaScript编程中常见的函数和概念,是学习和提升JavaScript技能的重要资源。以下是对这些常见函数和基础知识的详细解释: 1. **变量声明**:在JavaScript中,我们可以使用`var`...
JavaScript常用函数使用总结涵盖了多种在JavaScript编程中常用的方法,它们分别属于不同的类型,如String类型和Number类型。以下是对每个函数详细的说明和应用示例: 1. parseInt()函数 parseInt()是String类型的...
web前端javascript常用的的公共处理函数大全,性能较好。
javascript函数库,常用的javascript函数收集
JavaScript函数库是Web开发中不可或缺的部分,它们提供了一系列预先封装好的功能,可以帮助开发者高效地完成各种任务,如动画处理、事件处理、数据管理、Ajax通信等。本"JavaScript函数库查询手册"旨在为开发者提供...
JavaScript 和 Ruby 都是编程语言,虽然它们各自有着独特的语法和设计哲学,但在这个话题中,我们将重点关注JavaScript,特别是它的一些好用且常用的函数。在实际的Web开发中,JavaScript 是不可或缺的一部分,它...
常用JavaScript函数整理。 正则表达式验证。
这篇博客“10个常用自定义JavaScript函数”提供了十个非常实用的函数示例,旨在提升开发效率。虽然描述中没有给出具体的函数内容,但我们可以基于常见的JavaScript功能来推测和解释这些函数可能涉及的知识点。 1. *...
此外,关于JavaScript的其它编程技巧,本篇介绍了多个专题,包括常用函数技巧、面向对象入门、json操作、切换特效、查找算法、错误与调试、数据结构与算法、遍历算法以及数学运算的用法总结。这些内容都是非常实用的...
"jscommons"是一个开源项目,专门收集和提供常用的JavaScript函数和代码段,旨在帮助开发者提高工作效率,解决日常编程中遇到的常见问题。这个项目聚焦于JavaScript语言,因此所有的函数和代码段都基于JavaScript...
JavaScript学习函数时,常常会听懂了却做不来实际例子,本资源有部分函数的经典案例及答案,其中有些是基础题,有些逻辑对新人来说难以理解,希望对大家有所帮助。