javascript函数库(全)
- 格式:doc
- 大小:74.50 KB
- 文档页数:9
js的常用函数(原创实用版)目录一、JavaScript 函数分类二、常规函数1.alert 函数2.confirm 函数3.escape 函数4.eval 函数5.isNaN 函数6.parseFloat 函数7.parseInt 函数三、数组函数四、日期函数五、数学函数六、字符串函数正文JavaScript 是一种广泛应用于网页开发的编程语言,其中的函数是其重要的组成部分。
JavaScript 函数可以根据其用途和特性分为五类,包括常规函数、数组函数、日期函数、数学函数和字符串函数。
一、JavaScript 函数分类1.常规函数:这类函数主要用于处理一些常见的任务,如显示警告对话框、确认对话框、转换字符编码等。
2.数组函数:这类函数主要用于处理数组数据,包括数组的创建、修改、遍历等操作。
3.日期函数:这类函数主要用于处理日期和时间相关的任务,如获取当前日期、格式化日期等。
4.数学函数:这类函数主要用于执行一些数学运算,如计算平方根、绝对值、乘法等。
5.字符串函数:这类函数主要用于处理字符串数据,包括字符串的创建、修改、遍历等操作。
二、常规函数1.alert 函数:用于显示一个带有 OK 按钮的警告对话框。
2.confirm 函数:用于显示一个带有 OK 和 Cancel 按钮的确认对话框。
3.escape 函数:用于将特殊字符转换为对应的 Unicode 编码。
4.eval 函数:用于计算一个表达式的结果。
5.isNaN 函数:用于测试一个值是否为非数字。
6.parseFloat 函数:用于将一个字符串转换为浮点数。
7.parseInt 函数:用于将一个字符串转换为整数。
以上就是 JavaScript 中的常用函数大全,包括常规函数、数组函数、日期函数、数学函数和字符串函数。
pubu函数-回复搭建和使用Pubu函数的指南Pubu函数是一个强大而灵活的JavaScript函数库,可以提供丰富的功能和方法,方便开发者进行各种操作和处理。
本文将一步一步回答关于Pubu 函数的搭建和使用,帮助读者快速掌握这个函数库。
第一步:理解Pubu函数的作用和用途Pubu函数是一个通用的函数库,用于帮助开发者处理各种常见和繁琐的任务。
它包含了各种独立的函数和方法,可以用于处理字符串、数组、日期、数学计算等各种操作。
通过使用Pubu函数,开发者可以简化代码、提高效率、减少出错的机会。
第二步:了解Pubu函数的安装和导入方式Pubu函数是一个JavaScript函数库,可以通过多种方式进行安装和导入。
最常用的方式是使用CDN链接,只需将以下代码放置在HTML页面的<head>标签中:html<script src="另外,也可以将Pubu函数库下载到本地,并在HTML页面中引入:html<script src="path/to/pubu.js"></script>第三步:学习Pubu函数的基本用法Pubu函数库提供了大量的功能和方法,下面是一些常见的用法示例:1. 字符串操作:javascriptvar str = "Hello, Pubu!";var result = Pubu.toUpperCase(str);console.log(result); 输出"HELLO, PUBU!"2. 数组操作:javascriptvar arr = [1, 2, 3, 4, 5];var sum = Pubu.sum(arr);console.log(sum); 输出153. 日期操作:javascriptvar date = new Date();var formattedDate = Pubu.formatDate(date, "yyyy-MM-dd"); console.log(formattedDate); 输出当前日期的格式化字符串,例如"2022-01-01"4. 数学计算:javascriptvar num1 = 10;var num2 = 5;var product = Pubu.multiply(num1, num2);console.log(product); 输出50以上只是Pubu函数库的一部分功能和用法,开发者还可以根据具体需求,进一步探索和学习函数库提供的其他方法。
javaScript之函数function对象⼀,普通函数 在javascript中,函数是⼀等公民,函数在javascript是⼀个数据类型,⽽⾮像C#或其他描述性语⾔那样仅仅作为⼀个模块来使⽤.函数的定义:function 函数名 (参数){ 函数体;return 返回值;}功能说明:可以使⽤变量、常量或表达式作为函数调⽤的参数函数由关键字function定义函数名的定义规则与标识符⼀致,⼤⼩写是敏感的返回值必须使⽤return⼀.函数调⽤形式函数调⽤形式是最常见的形式,也是最好理解的形式。
所谓函数形式就是⼀般声明函数后直接调⽤。
例如://1.js中的函数的声明记得:有函数的声明就⼀定有调⽤function add(){alert("函数被调⽤了");alert(this);//当前的this指向了window//执⾏的⼀些操作}//2.函数的执⾏add(); 或者下⾯的声明函数和调⽤函数的⽅式var add = function(){alert('函数被调⽤了');}add() 声明函数式带形式参数function add3(x,y){return x+y;}var sum = add3(4,5)alert(sum)⼆,创建对象的⼏种常见⽅式1.使⽤Object或对象字⾯量创建对象2.⼯⼚模式创建对象3.构造函数模式创建对象4.原型模式创建对象1,使⽤Object或对象字⾯量创建对象JS中最基本创建对象的⽅式:var student = new Object(); = "easy";student.age = "20"; 这样,⼀个student对象就创建完毕,拥有2个属性name以及age,分别赋值为"easy"和20。
如果你嫌这种⽅法有⼀种封装性不良的感觉。
来⼀个对象字⾯量⽅式创建对象var sutdent = {name : "easy",age : 20}; 这样看起来似乎就完美了。
JavaScript节流函数Throttle详解在浏览器 DOM 事件⾥⾯,有⼀些事件会随着⽤户的操作不间断触发。
⽐如:重新调整浏览器窗⼝⼤⼩(resize),浏览器页⾯滚动(scroll),⿏标移动(mousemove)。
也就是说⽤户在触发这些浏览器操作的时候,如果脚本⾥⾯绑定了对应的事件处理⽅法,这个⽅法就不停的触发。
这并不是我们想要的,因为有的时候如果事件处理⽅法⽐较庞⼤,DOM 操作⽐如复杂,还不断的触发此类事件就会造成性能上的损失,导致⽤户体验下降(UI 反映慢、浏览器卡死等)。
所以通常来讲我们会给相应事件添加延迟执⾏的逻辑。
通常来说我们⽤下⾯的代码来实现这个功能:var COUNT = 0;function testFn() { console.log(COUNT++); }// 浏览器resize的时候// 1. 清除之前的计时器// 2. 添加⼀个计时器让真正的函数testFn延后100毫秒触发window.onresize = function () {var timer = null;clearTimeout(timer);timer = setTimeout(function() {testFn();}, 100);};细⼼的同学会发现上⾯的代码其实是错误的,这是新⼿会犯的⼀个问题:setTimeout 函数返回值应该保存在⼀个相对全局变量⾥⾯,否则每次 resize 的时候都会产⽣⼀个新的计时器,这样就达不到我们发的效果了于是我们修改了代码:var timer = null;window.onresize = function () {clearTimeout(timer);timer = setTimeout(function() {testFn();}, 100);};这时候代码就正常了,但是⼜多了⼀个新问题 —— 产⽣了⼀个全局变量 timer。
这是我们不想见到的,如果这个页⾯还有别的功能也叫 timer 不同的代码之前就是产⽣冲突。
JavaScript常⽤的⽅法和函数(setAttribute和getAttribute)仅记录学习的新知识和⽰例,⽆⼲货。
1.setAttribute和getAttribute (Attribute:属性)setAttribute:为元素添加指定的属性,并为其赋值;如果指定的属性已经存在,则仅设置或改变它的值。
调⽤⽅法:element.setAttribute(attributeName,attributeValue)这是⼀个⽅法,⽆返回值,IE8及以下不⽀持。
getAttribute:返回指定属性名的属性值。
调⽤⽅法:element.getAttribute(attributeName)返回值为字符串总结:attributeName为元素的属性名,attributeValue为元素的属性值,⼆者均为字符型⽰例:1var comm={2//setAttr为对象comm的⼀个⽅法,⽤于给元素设置属性3//e为形参,代表元素名称;strName为形参,代表所设置属性的名称;strValue为形参,代表所设置属性的值4 setAttr:function(e,strName,strValue){5 e.setAttribute(strName,strValue);6 },7//getAttr为对象comm的⼀个⽅法,⽤于获取元素属性8//e为形参,代表元素名称;strName为形参,代表所设置属性的名称,⽆值9 getAttr:function(e,strName){10return e.getAttribute(strName);11 }12 }以上为⾃定义⼀个对象⽤于给元素设置属性的⽅法。
调⽤上诉对象实现元素属性的改变⽰例如下:1<!DOCTYPE html>2<html>3<head lang="en">4<meta charset="UTF-8">5<script type="text/javascript" src=../../js/system.js></script>6<title></title>7<style type="text/css">8 .red{9 width: 260px;10 height: 100px;11 line-height: 100px;12 text-align: center;13 border: solid 1px red;14 margin: auto;15 }16 .blue{17 width: 260px;18 height: 100px;19 line-height: 100px;20 text-align: center;21 border: solid 1px blue;22 margin: auto;23 }24</style>25</head>26<body>27<div id="a" class="red">hello,Js!</div>28<div id="b">hello,Js2!</div>29<br/>30<input type="button" value="点我变⾊" id="bitRed"/>31<script type="text/javascript">32//定义⼀个变量clasName,⽤于保存使⽤comm.getAttr获取的ID号为a的元素的class属性值33var clasName =comm.getAttr($$("a"),"class");34//调⽤comm.serAttr函数为ID号为b的元素设置class属性,属性值为clasName,既a的class属性值35 comm.setAttr($$("b"),"class",clasName);36//设定ID号为bitRed的元素的点击事件37 $$("bitRed").onclick=function(){38//为元素设置属性39//console.log()⽅法⽤于检测是否绑定成功,可删除40 console.log("123");41//为ID为a的元素设置样式,括号内实参分别对应形参e,strName,strValue42 comm.setAttr($$("a"),"class","blue");//属性名,属性值43//定义⼀个变量clasName,⽤于保存使⽤comm.getAttr获取的ID号为a的元素的class属性值44//此变量clasName为局部变量,与上⼀个不同45var clasName =comm.getAttr($$("a"),"class");46//调⽤comm.serAttr函数为ID号为b的元素设置class属性,属性值为clasName,既a的class属性值47 comm.setAttr($$("b"),"class",clasName);48 }49</script>50</body>51</html>View Code此⽰例的要求是为ID为a的元素设置样式,ID为b的元素样式跟随元素a的样式,点击按钮,元素a的样式发⽣改变,同时元素b的样式随之改变。
Javascript学习之函数(function)在JS中,Function(函数)类型实际上是对象;每个函数都是Function类型的实例,⽽且都与其他引⽤类型⼀样具有属性和⽅法。
由于函数是对象,因此函数名实际上也是⼀个指向函数对象的指针。
⼀函数的声明⽅式//1.函数声明⽅式function add(num1,num2){return num1+num2;}//2.函数表达式定义函数var add= function(num1,num2){ // 通过变量box即可引⽤函数;return num1+num2;}; // 注意函数末尾有⼀个分号,就像声明其他变量时⼀样; var another = add; // 使⽤不带圆括号的函数名是访问函数指针;⽽⾮调⽤函数; console.log(another(10,10)); //3.使⽤Function构造函数var add = new Function('num1','num2','return num1+num2');// 第三种⽅式不推荐,这种语法会导致解析两次代码(第⼀次解析常规JS代码,第⼆次解析传⼊构造函数中的字符串),从⽽影响性能;// 可以通过这种语法来理解"函数是对象,函数名是指针"的概念;通常来说,在全局作⽤域内声明⼀个对象,只不过是对⼀个属性赋值⽽已,⽐如上例中的add函数,事实上只是为全局对象添加了⼀个属性,属性名为add,⽽属性的值是⼀个对象,即function(x, y){return x+y;},理解这⼀点很重要,这条语句在语法上跟:var str = "This is a string";并没有什么区别。
都是给全局对象动态的增加⼀个新的属性,如此⽽已。
⼆作为值的函数// JS中的函数名本⾝就是变量,所以函数也可以作为值来使⽤;// 也就是说,不仅可以像传参数⼀样把⼀个函数传递给另⼀个函数,⽽且可以将⼀个函数作为另⼀个函数的结果返回;function box(sumFunction,num){ // ⽆论第⼀个参数传递进来的是什么函数,return sumFunction(num); // 它都会返回执⾏第⼀参数后的结果;}function sum(num){return num+10;}// 传递函数到另⼀个函数⾥; // 要访问函数的指针不执⾏函数的话,须去掉函数名后的圆括号;var result = box(sum,10); // =>20;三、函数的内部属性// 函数内部有两个特殊的对象:arguments和this;// 1.arguments:包含着传⼊函数中的所有参数,arguments并不是⼀个数组,只是与数组相似。
附录B JavaScript语法手册1.JavaScript 函数表B-1 Java Script函数语言要素 描 述 GetObject函数返回文件中的Automation对象的引用。
ScriptEngine函数返回代表所使用的脚本语言的字符串。
ScriptEngineBuildVersion函数返回所使用的脚本引擎的编译版本号。
ScriptEngineMajorVersion函数返回所使用的脚本引擎的主版本号。
ScriptEngineMinorVersion函数返回所使用的脚本引擎的次版本号。
2.JavaScript 方法表B-2 JavaScript方法语言要素 描 述abs方法返回一个数的绝对值acos方法返回一个数的反余弦anchor方法在对象的指定文本两端加上一个带name属性的HTML锚点asin方法返回一个数的反正弦atan方法返回一个数的反正切atan2方法返回从X轴到点(y,x)的角度(以弧度为单位)atEnd方法返回一个表明枚举算子是否处于集合结束处的Boolean值big方法在String对象的文本两端加入HTML的<big>标识blink方法将HTML的<Blink>标识添加到String对象中的文本两端bold方法将HTML的<B>标识添加到String对象中的文本两端ceil方法返回大于或等于其数值参数的最小整数charAt方法返回位于指定索引位置的字符charCodeAt方法返回指定字符的Unicode编码compile方法将一个正则表达式编译为内部格式concat方法(Array)返回一个由两个数组合并组成的新数组concat方法(String)返回一个包含给定的两个字符串的连接的String对象cos方法返回一个数的余弦dimensions方法返回VBArray的维数escape方法对String对象编码,以便在所有计算机上都能阅读eval方法对JavaScript代码求值然后执行附录B JavaScript语法手册(续表)语言要素 描 述exec方法在指定字符串中执行一个匹配查找exp方法返回e(自然对数的底)的幂fixed方法将HTML的<TT>标识添加到String对象中的文本两端floor方法返回小于或等于其数值参数的最大整数fontcolor方法将HTML带Color属性的<Font>标识添加到String对象中的文本两端fontsize方法将HTML带Size属性的<Font>标识添加到String对象中的文本两端fromCharCode方法返回Unicode字符值的字符串getDate方法使用当地时间返回Date对象的月份日期值getDay方法使用当地时间返回Date对象的星期几getFullYear方法使用当地时间返回Date对象的年份getHours方法使用当地时间返回Date对象的小时值getItem方法返回位于指定位置的项getMilliseconds方法使用当地时间返回Date对象的毫秒值getMinutes方法使用当地时间返回Date对象的分钟值getMonth方法使用当地时间返回Date对象的月份getSeconds方法使用当地时间返回Date对象的秒数getTime方法返回Date对象中的时间getTimezoneOffset方法返回主机的时间和全球标准时间(UTC)之间的差(以分钟为单位)getUTCDate方法使用全球标准时间(UTC)返回Date对象的日期值getUTCDay方法使用全球标准时间(UTC)返回Date对象的星期几getUTCFullYear方法使用全球标准时间(UTC)返回Date对象的年份getUTCHours方法使用全球标准时间(UTC)返回Date对象的小时数getUTCMilliseconds方法使用全球标准时间(UTC)返回Date对象的毫秒数getUTCMinutes方法使用全球标准时间(UTC)返回Date对象的分钟数getUTCMonth方法使用全球标准时间(UTC)返回Date对象的月份值getUTCSeconds方法使用全球标准时间(UTC)返回Date对象的秒数getVarDate方法返回Date对象中的VT_DATEgetYear方法返回Date对象中的年份indexOf方法返回在String对象中第一次出现子字符串的字符位置isFinite方法返回一个Boolean值,表明某个给定的数是否是有穷的isNaN方法返回一个Boolean值,表明某个值是否为保留值NaN(不是一个数)italics方法将HTML的<I>标识添加到String对象中的文本两端item方法返回集合中的当前项join方法返回一个由数组中的所有元素连接在一起的String对象545网页设计与网站建设完全实用手册(续表)语言要素 描 述lastIndexOf方法返回在String对象中子字符串最后出现的位置lbound方法返回在VBArray中指定维数所用的最小索引值link方法将带HREF属性的HTML锚点添加到 String 对象中的文本两端log方法返回某个数的自然对数match方法使用给定的正则表达式对象对字符串进行查找,并将结果作为数组返回max方法返回给定的两个表达式中的较大者min方法返回给定的两个数中的较小者moveFirst方法将集合中的当前项设置为第一项moveNext方法将当前项设置为集合中的下一项parse方法对包含日期的字符串进行分析,并返回该日期与1970年1月1日零点之间相差的毫秒数parseFloat方法返回从字符串转换而来的浮点数parseInt方法返回从字符串转换而来的整数pow方法返回一个指定幂次的底表达式的值random方法返回一个0和1之间的伪随机数replace方法返回根据正则表达式进行文字替换后的字符串的复制reverse方法返回一个元素反序的Array对象round方法将一个指定的数值表达式舍入到最近的整数并将其返回search方法返回与正则表达式查找内容匹配的第一个子字符串的位置setDate方法使用当地时间设置Date对象的数值日期setFullYear方法使用当地时间设置Date对象的年份setHours方法使用当地时间设置Date对象的小时值setMilliseconds方法使用当地时间设置Date对象的毫秒值setMinutes方法使用当地时间设置Date对象的分钟值setMonth方法使用当地时间设置Date对象的月份setSeconds方法使用当地时间设置Date对象的秒值setTime方法设置Date对象的日期和时间setUTCDate方法使用全球标准时间(UTC)设置Date对象的数值日期setUTCFullYear方法使用全球标准时间(UTC)设置Date对象的年份setUTCHours方法使用全球标准时间(UTC)设置Date对象的小时值setUTCMilliseconds方法使用全球标准时间(UTC)设置Date对象的毫秒值setUTCMinutes方法使用全球标准时间(UTC)设置Date对象的分钟值setUTCMonth方法使用全球标准时间(UTC)设置Date对象的月份setUTCSeconds方法使用全球标准时间(UTC)设置Date对象的秒值setYear方法使用Date对象的年份546附录B JavaScript语法手册(续表)语言要素 描 述sin方法返回一个数的正弦slice方法(Array)返回数组的一个片段slice方法(String)返回字符串的一个片段small方法将HTML的<SMALL>标识添加到String对象中的文本两端sort方法返回一个元素被排序了的Array对象split方法将一个字符串分割为子字符串,然后将结果作为字符串数组返回sqrt方法返回一个数的平方根strike方法将HTML的<STRIKE>标识添加到String对象中的文本两端sub方法将HTML的<SUB>标识放置到String对象中的文本两端subStr方法返回一个从指定位置开始并具有指定长度的子字符串subString方法返回位于String对象中指定位置的子字符串sup方法将HTML的<SUP>标识放置到String对象中的文本两端tan方法返回一个数的正切test方法返回一个Boolean值,表明在被查找的字符串中是否存在某个模式toArray方法返回一个从VBArray转换而来的标准JavaScript数组toGMTString方法返回一个转换为使用格林尼治标准时间(GMT)的字符串的日期toLocaleString方法返回一个转换为使用当地时间的字符串的日期toLowerCase方法返回一个所有的字母字符都被转换为小写字母的字符串toString方法返回一个对象的字符串表示toUpperCase方法返回一个所有的字母字符都被转换为大写字母的字符串toUTCString方法返回一个转换为使用全球标准时间(UTC)的字符串的日期ubound方法返回在VBArray的指定维中所使用的最大索引值unescape方法对用escape方法编码的String对象进行解码UTC方法返回1970年1月1日零点的全球标准时间(UTC)(或GMT)与指定日期之间的毫秒数valueOf方法返回指定对象的原始值3.JavaScript 对象表B-3 JavaScript对象语言要素 描 述ActiveXObject对象启用并返回一个Automation对象的引用Array对象提供对创建任何数据类型的数组的支持Boolean对象创建一个新的Boolean值Date对象提供日期和时间的基本存储和检索Dictionary对象存储数据键、项对的对象547网页设计与网站建设完全实用手册(续表)语言要素 描 述Enumerator对象提供集合中的项的枚举Error对象包含在运行JavaScript代码时发生错误的有关信息FileSystemObject对象提供对计算机文件系统的访问Function对象创建一个新的函数Global对象是一个内部对象,目的是将全局方法集中在一个对象中Math对象一个内部对象,提供基本的数学函数和常数Number对象表示数值数据类型和提供数值常数的对象Object对象提供所有的JavaScript对象的公共功能RegExp对象存储有关正则表达式模式查找的信息正则表达式对象包含一个正则表达式模式String对象提供对文本字符串的操作和格式处理,判定在字符串中是否存在某个子字符串及确定其位置。
JavaScript中的Function(函数)对象JavaScript中的Function对象是函数,函数的用途分为3类:1.作为普通逻辑代码容器;2.作为对象方法;3.作为构造函数。
1.作为普通逻辑代码容器function multiply(x, y){return x*y;}函数multiply封装了两位数的乘法运算公式:var product = multiply(128,128); // product = 16384创建函数实例的方式有3种。
第一种是声明式,即像声明变量一样,将通过function(){}标识符创建的匿名函数直接赋值给变量,以该变量作为调用时的函数名称:var multiply = function(x, y){return x*y;}第二种是定义式,即以function关键字后跟函数名称及(){}来直接定义命名函数,前面第一个multiply函数就是通过定义式创建的。
第三种是构造函数式,即通过new运算符调用构造函数Function来创建函数。
这种方式极不常用,因此就不作介绍了。
在创建函数的3种方式中,声明式和定义式还存在细微的差别。
比如下列代码中的函数采用声明式:var example = function(){return 1;}example();var example = function(){return 2;}example();执行结果如下:12而如果采用定义式,即:function example(){return 1;}example();function example(){return 2;}example();那么会得到另一种结果:22即,在采用定义式创建同名函数时,后创建的函数会覆盖先创建的函数。
这种差别是由于JavaScript解释引擎的工作机制所导致的。
JavaScript解释引擎在执行任何函数调用之前,首先会在全局作用域中注册以定义式创建的函数,然后再依次执行函数调用。
js对函数的说明1.函数的定义及特点在JavaScript中,函数可以定义为一组指令及逻辑结构,用于完成特定的任务。
函数一般由关键字function开头,后面紧跟函数名,参数用括号括起来,参数之间用逗号分隔,然后是函数体,最后用return语句返回一个值。
函数的定义形式如下:```javascriptfunction functionName(parameter1, parameter2, …, parameterN){//执行的操作return result;}```其中,functionName是函数名,parameter1、parameter2、…、parameterN是参数,可以为0个或多个,result是返回值,可以为0个或1个。
函数的特点主要有以下几点:- 函数是一段可重复使用的代码块。
通过调用函数可以减少代码冗余,提高代码的可维护性和复用性。
- 函数的执行结果可以用return语句返回,可以作为表达式的值参与运算。
- 函数具有局部作用域,函数内部定义的变量在函数外部是无法访问的,保证了函数的封装性。
- 函数可以作为参数传递给其他函数,也可以作为返回值返回给其他函数,实现函数的组合和复合。
- 函数可以递归调用自己,实现较复杂的计算和算法。
2.函数的调用方式JavaScript中函数的调用方式分为三种:函数调用、方法调用和构造函数调用。
2.1 函数调用函数调用是最基本的调用方式,可以通过函数名直接调用函数。
函数调用语法如下:```javascriptfunctionName(argument1, argument2, …, argumentN);```其中,argument1、argument2、…、argumentN是实参,传入函数内部的参数值。
下面是一个简单的例子:```javascriptfunction add(a, b) {return a + b;}var result = add(1, 2);```add函数接收两个参数a和b,返回两个参数相加的结果。
全⾯理解Javascript中Function对象的属性和⽅法函数是 JavaScript 中的基本数据类型,在函数这个对象上定义了⼀些属性和⽅法,下⾯我们逐⼀来介绍这些属性和⽅法,这对于理解Javascript的继承机制具有⼀定的帮助。
1. 属性(Properties)arguments获取当前正在执⾏的 Function 对象的所有参数,是⼀个类似数组但不是数组的对象,说它类似数组是因为其具有数组⼀样的访问性质及⽅式,可以由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length。
还有就是arguments对象存储的是实际传递给函数的参数,⽽不局限于函数声明所定义的参数列表(length),⽽且不能显式创建 arguments 对象。
下⾯的Sample 说明了这些性质。
function testArg(a, b) {var actCount = arguments.length,expCount = testArg.length,result;result = "Expected arguments' count is " + expCount + ";<br/>";result += "Actual arguments' count is " + actCount + ".<br/>";result += "They are:<br/>";for (var i = 0; i < actCount; i++) {result += arguments[i] + ";<br/>";}if (arguments instanceof Array) {result += "arguments is an Array instance."} else if (arguments instanceof Object) {result += "arguments is an Object instance."}document.write(result);}testArg(1);//output result is:Expected arguments' count is 2;Actual arguments' count is 1.They are:1;arguments is an Object instance.length获取函数定义的参数个数,functionName.length不同于arguments.length,这点我们在上⾯有介绍。
RequireJS 入门指南如今最常用的JavaScript库之一是RequireJS。
最近我参与的每个项目,都用到了RequireJS,或者是我向它们推荐了增加RequireJS。
在这篇文章中,我将描述RequireJS 是什么,以及它的一些基础场景。
异步模块定义(AMD)谈起RequireJS,你无法绕过提及JavaScript模块是什么,以及AMD是什么。
JavaScript模块只是遵循SRP(Single Responsibility Principle单一职责原则)的代码段,它暴露了一个公开的API。
在现今JavaScript开发中,你可以在模块中封装许多功能,而且在大多数项目中,每个模块都有其自己的文件。
这使得JavaScript开发者日子有点难过,因为它们需要持续不断的关注模块之间的依赖性,按照一个特定的顺序加载这些模块,否则运行时将会放生错误。
当你要加载JavaScript模块时,就会使用script标签。
为了加载依赖的模块,你就要先加载被依赖的,之后再加载依赖的。
使用script标签时,你需要按照此特定顺序安排它们的加载,而且脚本的加载是同步的。
可以使用async和defer关键字使得加载异步,但可能因此在加载过程中丢失加载的顺序。
另一个选择是将所有的脚本捆绑打包在一起,但在捆绑的时候你仍然需要把它们按照正确的顺序排序。
AMD就是这样一种对模块的定义,使模块和它的依赖可以被异步的加载,但又按照正确的顺序。
CommonJS, 是对通用的JavaScript模式的标准化尝试,它包含有AMD 定义,我建议你在继续本文之前先读一下。
在ECMAScript 6这个下一版本JavaScript 规范中,有关于输出,输入以及模块的规范定义,这些将成为JavaScript语言的一部分,而且这不会太久。
这也是关于RequireJS我们想说的东西。
RequireJS?你使用Visual Studio也可以通过Nuget获取。
JS函数调用(4种方法)JavaScript中可以通过四种不同的方式来调用函数:1.函数式调用:这是最常见的函数调用方式,通过函数名后接一对圆括号来调用函数,并将参数传递给函数。
例如:```javascriptfunction greet(name)console.log("Hello, " + name);greet("Alice"); // 输出:Hello, Alice```在函数式调用中,函数名后面的圆括号中可以传递任意个数的参数。
2.方法调用:在JavaScript中,函数也可以绑定到对象的属性上,从而成为该对象的方法。
在这种情况下,我们可以使用对象名和属性名来调用函数。
例如:```javascriptvar person =name: "John",greet: functioconsole.log("Hello, " + );}};person.greet(; // 输出:Hello, John```在方法调用中,函数内部的`this`关键字指向调用该方法的对象。
3.构造函数调用:在JavaScript中,使用`new`关键字创建一个对象的过程称为构造函数调用。
构造函数是一个特殊的函数,它包含一个或多个属性和方法,并被用于创建新对象的模板。
例如:```javascriptfunction Person(name) = name;var person = new Person("Alice");console.log(); // 输出:Alice```在构造函数调用中,新创建的对象被称为实例,并且继承了构造函数的属性和方法。
4. apply和call方法调用:JavaScript提供了`apply`和`call`方法来调用函数,并指定函数内部的`this`关键字的值。
这两个方法可以让我们在调用函数时选择我们希望函数内部`this`关键字引用的对象。
JavaScript⼯具库(函数式编程)lodash
⼀、什么是lodash?
lodash库是⼀个具有⼀致接⼝、模块化、⾼性能等特性的 JavaScript ⼯具库。
lodash是⼀个javascript库,也是Node JS的常⽤模块,它内部封装了诸多对字符串、数组、对象等常见数据类型的处理函数,其中部分是⽬前 ECMAScript 尚未制定的规范,但同时被业界所认可的辅助函数。
⼆、lodash相关⽂档
API⽂档:
三、lodash模块组成
Array,适⽤于数组类型,⽐如填充数据、查找元素、数组分⽚等操作;
Collection,适⽤于数组和对象类型,部分适⽤于字符串,⽐如分组、查找、过滤等操作;
Function,适⽤于函数类型,⽐如节流、延迟、缓存、设置钩⼦等操作;
Lang,普遍适⽤于各种类型,常⽤于执⾏类型判断和类型转换;
Math,适⽤于数值类型,常⽤于执⾏数学运算;
Number,适⽤于⽣成随机数,⽐较数值与数值区间的关系;
Object,适⽤于对象类型,常⽤于对象的创建、扩展、类型转换、检索、集合等操作;
Seq,常⽤于创建链式调⽤,提⾼执⾏性能(惰性计算);
String,适⽤于字符串类型;
链接:。
javascript版的in_array函数(判断数组中是否存在特定
值)
我们经常会⽤到这个⼀样逻辑,判断⼀个字符串或者数字是否在数组内,很多程序语⾔都有这样⼀样专门的函数,⽐如PHP 的in_array()。
那么JS有⽊有呢,很遗憾,JS⽊有这样的函数,于是想到伟⼤的JQ是否封装了这个函数,找到了API,JQ的确封装了这个函数
jQuery.inArray( value, array ) 搜索数组中指定值并返回它的索引(如果没有找到则返回-1)。
value要搜索的值。
array⼀个数组,通过它来搜索。
当然,处于学习,⾃⼰也去写了这样的函数:
复制代码代码如下:
function inArray1(needle,array,bool){
if(typeof needle=="string"||typeof needle=="number"){
for(var i in array){
if(needle===array[i]){
if(bool){
return i;
}
return true;
}
}
return false;
}
}
三个参数,在array中查找needle,bool为布尔量,如果为true则返回needle在array中的位置。
转载请注明出处-中国设计秀/*-------------- 函数检索--------------trim函数: trim() lTrim() rTrim()校验字符串是否为空: checkIsNotEmpty(str)校验字符串是否为整型: checkIsInteger(str)校验整型最小值: checkIntegerMinValue(str,val)校验整型最大值: checkIntegerMaxValue(str,val)校验整型是否为非负数: isNotNegativeInteger(str)校验字符串是否为浮点型: checkIsDouble(str)校验浮点型最小值: checkDoubleMinValue(str,val)校验浮点型最大值: checkDoubleMaxValue(str,val)校验浮点型是否为非负数: isNotNegativeDouble(str)校验字符串是否为日期型: checkIsValidDate(str)校验两个日期的先后: checkDateEarlier(strStart,strEnd)校验字符串是否为email型: checkEmail(str)校验字符串是否为中文: checkIsChinese(str)计算字符串的长度,一个汉字两个字符: realLength()校验字符串是否符合自定义正则表达式: checkMask(str,pat)得到文件的后缀名: getFilePostfix(oFile)-------------- 函数检索--------------*//*** added by LxcJie 2004.6.25* 去除多余空格函数* trim:去除两边空格lTrim:去除左空格rTrim: 去除右空格* 用法:* var str = " hello ";* str = str.trim();*/String.prototype.trim = function(){$)/g,return this.replace(/(^[\s]*)|([\s]* "");}String.prototype.lTrim = function(){return this.replace(/(^[\s]*)/g, "");}String.prototype.rTrim = function(){$)/g,return this.replace(/([\s]* "");}/********************************** Empty **************************************/ /***校验字符串是否为空*返回值:*如果不为空,定义校验通过,返回true*如果为空,校验不通过,返回false 参考提示信息:输入域不能为空!*/function checkIsNotEmpty(str){if(str.trim() == "")return false;elsereturn true;}//~~~/*--------------------------------- Empty --------------------------------------*//********************************** Integer *************************************//***校验字符串是否为整型*返回值:*如果为空,定义校验通过,返回true*如果字串全部为数字,校验通过,返回true*如果校验不通过,返回false 参考提示信息:输入域必须为数字!*/function checkIsInteger(str){//如果为空,则通过校验if(str == "")return true;$/.test(str))if(/^(\-?)(\d+)return true;elsereturn false;}//~~~/***校验整型最小值*str:要校验的串。
val:比较的值**返回值:*如果为空,定义校验通过,返回true*如果满足条件,大于等于给定值,校验通过,返回true*如果小于给定值,返回false 参考提示信息:输入域不能小于给定值!*/function checkIntegerMinValue(str,val){//如果为空,则通过校验if(str == "")return true;if(typeof(val) != "string")val = val + "";if(checkIsInteger(str) == true){if(parseInt(str,10)>=parseInt(val,10))return true;elsereturn false;}return false;}//~~~/***校验整型最大值*str:要校验的串。
val:比较的值**返回值:*如果为空,定义校验通过,返回true*如果满足条件,小于等于给定值,校验通过,返回true*如果大于给定值,返回false 参考提示信息:输入值不能大于给定值!*/function checkIntegerMaxValue(str,val){//如果为空,则通过校验if(str == "")return true;if(typeof(val) != "string")val = val + "";if(checkIsInteger(str) == true){if(parseInt(str,10)<=parseInt(val,10))return true;elsereturn false;}elsereturn false;}//~~~/***校验整型是否为非负数*str:要校验的串。
**返回值:*如果为空,定义校验通过,返回true*如果非负数,返回true*如果是负数,返回false 参考提示信息:输入值不能是负数!*/function isNotNegativeInteger(str){//如果为空,则通过校验if(str == "")return true;if(checkIsInteger(str) == true){if(parseInt(str,10) < 0)return false;elsereturn true;elsereturn false;}//~~~/*--------------------------------- Integer --------------------------------------*//********************************** Double ****************************************//***校验字符串是否为浮点型*返回值:*如果为空,定义校验通过,返回true*如果字串为浮点型,校验通过,返回true*如果校验不通过,返回false 参考提示信息:输入域不是合法的浮点数!*/function checkIsDouble(str){//如果为空,则通过校验if(str == "")return true;//如果是整数,则校验整数的有效性if(str.indexOf(".") == -1){if(checkIsInteger(str) == true)return true;elsereturn false;}else{$/g.test(str))if(/^(\-?)(\d+)(.{1})(\d+)return true;elsereturn false;}}//~~~/***校验浮点型最小值*str:要校验的串。
val:比较的值**返回值:*如果为空,定义校验通过,返回true*如果满足条件,大于等于给定值,校验通过,返回true*如果小于给定值,返回false 参考提示信息:输入域不能小于给定值!*/function checkDoubleMinValue(str,val){//如果为空,则通过校验if(str == "")return true;if(typeof(val) != "string")val = val + "";if(checkIsDouble(str) == true){if(parseFloat(str)>=parseFloat(val))return true;elsereturn false;}elsereturn false;}//~~~/***校验浮点型最大值*str:要校验的串。
val:比较的值**返回值:*如果为空,定义校验通过,返回true*如果满足条件,小于等于给定值,校验通过,返回true*如果大于给定值,返回false 参考提示信息:输入值不能大于给定值!*/function checkDoubleMaxValue(str,val){//如果为空,则通过校验if(str == "")return true;if(typeof(val) != "string")val = val + "";if(checkIsDouble(str) == true){if(parseFloat(str)<=parseFloat(val))return true;elsereturn false;}elsereturn false;}//~~~/***校验浮点型是否为非负数*str:要校验的串。
**返回值:*如果为空,定义校验通过,返回true*如果非负数,返回true*如果是负数,返回false 参考提示信息:输入值不能是负数!*/function isNotNegativeDouble(str){//如果为空,则通过校验if(str == "")return true;if(checkIsDouble(str) == true){if(parseFloat(str) < 0)return false;elsereturn true;}elsereturn false;}//~~~/*--------------------------------- Double ---------------------------------------*//********************************** date ******************************************//***校验字符串是否为日期型*返回值:*如果为空,定义校验通过,返回true*如果字串为日期型,校验通过,返回true*如果日期不合法,返回false 参考提示信息:输入域的时间不合法!(yyyy-MM-dd)*/function checkIsValidDate(str){//如果为空,则通过校验if(str == "")return true;var pattern = $/g;/^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})if(!pattern.test(str))return false;var arrDate = str.split("-");if(parseInt(arrDate[0],10) < 100)arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);if(date.getYear() == arrDate[0]&& date.getMonth() == (parseInt(arrDate[1],10) -1)+""&& date.getDate() == arrDate[2])return true;elsereturn false;}//~~~/***校验两个日期的先后*返回值:*如果其中有一个日期为空,校验通过, 返回true*如果起始日期早于等于终止日期,校验通过,返回true*如果起始日期晚于终止日期,返回false 参考提示信息:起始日期不能晚于结束日期。