javaScript学习小记(二)------常用函数

1.测试变量的数据类型 ----   typeof

"undefined"            -----             如果这个值未定义

2.测试数字是否位于最大数和最小数之间     -----     isFinite()

var result = Number.MAX_VALUE + Number.MIN_VALUE;

alert( isFinite(result));   //false

3.判断一个参数是否"不是数值",它会努力尝试将这个参数转换为数值     ------  isNaN()

alert(isNaN(NaN));           //true

alert(isNaN(10));              //false

alert(isNaN("10"));           //false             

alert(isNaN("blue"));       //true

alert(isNaN(true));           //false

4.非数值转换为数值          ------        Number()   、 parseInt()   、parseFloat()

var num1 = Number("hello world");      //NaN

var num2 = Number(" ");                         //0

var num3 = Number("0000011");          //11

var num4 = Number(true);                      //1

var num5 = parseInt("0xA");                    //10(十六进制数)

var num6 = parseInt("070");                    //56(八进制数)

var num7 = parseInt("1234blue");          //1234

var num8 = parseInt(" ");                          //NaN

var num9 = parseInt(22.5);                      //22

十六进制指定基数可不带0x

var num10 = parseInt("AF" ,  16);            //175

var num11 = parseInt("AF");                     //NaN

指定基数

var num12 = parseInt("10" , 2);                     //2(按二进制进行解析)

var num13 = parseInt("10" , 8);                     //8(按八进制进行解析)

var num14 = parseInt("10" ,10);                    //10(按十进制进行解析)

var num15 = parseInt("10" , 16);                   //16(按十六进制进行解析)

var num16 = parseFloat("1234blue");         //1234整数

var num17 = parseFloat("0xA");                    //0

var num18 = parseFloat("22.5");                  //22.5

var num19 = parseFloat("22.34.5");            //22.34

var num20 = parseFloat("0980.5");             //980.5

var num21 = parseFloat("3.125e7");           //31250000

5.检测数组         ------        instanceof            isArray()

if (value instanceof Array) {

      //假定单一全局执行环境   ECMAScript3

}

if (Array.isArray(value)) {

      //ECMAScript5

}

6.数组的插入和删除      ------   push()   、pop()    、 shift()   、unshift()

var array = new Array();

push()  :  向数组尾部增加元素,返回新数组的长度

var pushLength = array.push("value1","value2");

alert(pushLength);          //2

pop()  :  移除数组最后一项,并返回移除的项

var item = array.pop();

alert(item);      //value2

unshift()  :  向数组的头部增加元素,返回新数组的长度

var unshiftLength = array.unshift("value3");

alert(unshiftLength);          //2

shift()  :  移除数组的第一项,并返回移除的项

var itemShift = array.shift();

alert(itemShift);      //value1

7.数组的操作方法  -   删除、插入、替换  -------splice()

主要是用途是向数组中部插入项

插入:可以向指定位置插入任意数量的项,需提供3个参数:起始位置、0(要删除的项数)、要插入的项

splice(2,0,"red","blue")     //从数组的位置2开始插入

删除 :可以删除任意数量的项,只需提供2个参数:要删除的第一项的位置和要删除的项数

splice(2,2)                          //从数组位置2开始删除,删除2项

替换:向数组指定位置插入任意数量的项,且同时删除任意数量的项,只需提供3个参数:起始位置、要删除的项数、要插入任意数量的项

splice(2,2,"red","blue");    // 从数组位置2开始删除,删除2项,然后再从位置2开始插入字符串"red","blue"

8.数组的重排序       ------       reverse()  、sort()

var array = [0,1,5,10,15];

sort()  :  根据字符串的顺序进行排序

array.sort();

alert(array);    // 0,1,10,15,5

reverse()  :  反转数组顺序

array.reverse();

alert(array);     //5,15,10,1,0

实用升序排序:为sort()函数传递一个比较函数作为参数

function compare(value1,value2) {    //升序排列

      if (value1 < value2) {

             return   -1;      //升降序控制

      }  else if (value1 > value2) {

            return    1;       //升降序控制

      } else  {

            return 0;

      }

}

array.sort(compare);

alert(array);     //0,1,5,10,15

简化版的compare函数

function simpleCompare(value1,value2) {

      return  value2 - value1;

}

9.在数组中截取新数组,该操作不会影响原数组   ------   slice()

var array = [1,2,3,4,5,6,7,8,9];

var array1 = array.slice(3);        //4,5,6,7,8,9

var array2 = array.slice(2,4);     //3,4

10.数组构建   ------     concat()

var array = [1,2,3];

var array1 = array.concat(4,5);     //array1 : 1,2,3,4,5

var array2 = array.concat([4,5,6]);      //array2  :  1,2,3,4,5,6

var array3 = array.concat(4,5,[6,7,8]);     //array3  :  1,2,3,4,5,6,7,8

11.位置方法     ------      indexOf()     、   lastIndexOf()

indexOf(param1,param2)  :  param1:要查找的项(数组内是否包含次元素) ,param2(可选的)查找的起点位置的索引

var array = [1,2,3,4,5,6,7,8,9];

alert(array.indexOf(5));     //4

alert(array.indexOf(5,5));   //-1     查不到返回-1

12.数组迭代方法:  ------ every()  、filter()  、forEach()  、map()  、some()     IE9+,Firefox2+,Safari3+,Opera9.5+,Chorme

every()  :  对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true;

判断数组A中的所有元素都在数组B内:

var A = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var B = [1, 2, 5, 6, 6, 8];
var boo = B.every(function(item, index, array){
        if (A.indexOf(item)!= -1) {
                 return true;                
          }
 });

alert(boo);     //true

var C = [1, 2, 5, 6, 6, 8];
var booc = C.every(function(item, index, array){
        if (A.indexOf(item)!= -1) {
                 return true;                
          }
 });

alert(booc);     //false

filter()  :  对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。

forEach()  :  对数组中的每一项运行给定函数,无返回值。

取出数组B中的元素在数组A中出现(未出现)过的元素:

var A = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var B = [1, 2, 5, 6,0, 8];

var arr = new Array();
B.forEach(function(item, index, array){
      if (A.indexOf(item)!= -1) {
             arr[arr.length] = item;            
       }
 });
 alert(arr);    //1,2,5,6,8

map()  :  对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

some():  对数组中的每一项运行给定函数,如果该函数对任一项都返回true,则返回true;

13.缩小方法:      -------      reduce()   、reduceRight()                    IE9+,Firefox3+,safari 4+,Opera 10.5,chrome

迭代数组的每一项,然后构建一个最终的返回值。函数接收4个参数:前一个值、当前值、项的索引、数组对象

这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项。

var array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var sum = array.reduce(function(pre,cur,index,array) {
return pre + cur;
})
alert(sum);    //45

reduceRight()只是反向遍历,结果不变

14.取得调用方法时的日期和时间的毫秒数  ------      Date.now();

15.日期格式化方法:

toDateString()  :  以特定于实现的格式显示星期几、月、日和年。

toTimeString()  :  以特定于实现的格式显示时、分、秒和时区。

toLocaleDateString()  :  以特定于地区的格式显示星期几、月、日和年。

toLocaleTimeString()  :  以特定于地区的格式显示时、分、秒。

toUTCString()  :  以特定于实现的格式显示完整的UTC日期。

16.日期/时间组件的方法:

getTime()      ------      返回表示日期的毫秒数;与valueOf()方法返回的值相同

setTime(毫秒)    ------   以毫秒数设置日期,会改变整个日期

getFullYear()      ------    取得4位数的年份(如2007) 

getUTCFullYear   ------   返回UTC日期的4位数年份

setFullYear(年)    -------    设置日期的年份,传入的值必须是4位数字(如2007 而不是 07 )

setUTCFullYear(年)    ------  设置UTC日期的年份,传入的值必须是4位数字(如2007 而不是 07 )

getMonth()    ------    返回日期中的月份,0表示1月,11表示十二月

getUTCMonth()    ------  返回UTC日期中的月份,0表示1月,11表示十二月

setMonth(月)       -------    设置日期的月份,传入的月份值必须大于0,超过11则增加年份

setUTCMonth(月)     ------   设置UTC日期的月份,传入的月份值必须大于0,超过11则增加年份

getDate()    ------    返回日期月份中的天数(1  ---   31)

getUTCDate()     ------    返回UTC日期月份中的天数(1  ---   31)

setDate(日)      -------    设置日期中月份的天数。如果传入的值超过了该月中的天数,则增加月份

setUTCDate(日)       -------    设置UTC日期中月份的天数。如果传入的值超过了该月中的天数,则增加月份

getDay()     --------    返回日期中星期的星期几

getUTCDay()    --------    返回UTC日期中星期的星期几

getHours()     --------     返回日期中小时数( 0 --- 23)

getUTCHours()    ------    返回UTC日期中的小时数( 0 ----23)

setHours()     ------     设置日期中的小时数

setUTCHours()    -------     设置UTC日期中的小时数

getMinutes()     --------    返回日期中的分钟数(0  -   59)

getUTCMinutes()    --------    返回日期中的分钟数(0  -   59)

17.作为值的函数:比较对象的某一个参数,可根据参数(对象属性)进行排序。

function createComparisonFunction(propertyName) {

        return function(object1,object2) {

             var value1 = object1[propertyName];

var value2 = obejct2[propertyName];

if (value1 < value2) {

     return -1;

} else if (value1 >value2) {

     return 1;

} else {

     return 0;

}

        }

}

var data = [{name : "zhang" , age : 20 } , {name : "li" ,age : 25 }];

data.sort(createComparisonFunction(name));

alert(data[0].name);     // "li"

data.sort(createComparisonFunction(age));

alert(data[0].name);      //"zhang"

18.函数的内部属性:     ------         arguments.callee()

阶乘计算:

 function factorial(max){
          if (max <= 1) {
                    return 1;
          } else {
                    return max * arguments.callee(max - 1);
          }
}

alert(factorial(5));   //120

一定数值范围内的阶乘计算:

function betweenFactorial (max,min) {
return factorial(max)/factorial(min-1);
}

alert(betweenFactorial(5,4));    //20

19.函数的内置属性和方法 :    -------       apply()

选出数组中最大/最小的值

var data = [1,2,3,4,65,6,5,8];

var maxValue = Math.max.apply(Math,data);

alert(maxValue);     //56

var minValue = Math.min.apply(Math,data);

alert(minValue);     //1

时间: 2025-01-27 17:54:14

javaScript学习小记(二)------常用函数的相关文章

javascript学习笔记之对象函数变量作用域

一.对象 数组我们用[],对象我们用{} 创建对象: var obj = {属性名:属性值1,属性名:属性值2,属性名:属性值3}; var obj = {"name":"zhansan","age":22,"sex":'male'}; 对象单元值的引用 对象名.属性名 obj.name//使用方法 对象名[属性名] obj.['name']//这是类似数组的使用方法,不建议这么使用 对象如何遍历,遍历对象不能用obj.key

JavaScript学习总结(二)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

一.AJAX示例 AJAX全称为"Asynchronous JavaScript And XML"(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效果. 1.1.优点 不需要插件支持 优秀的用户体验 提高Web程序的性能 减轻服务器和带宽的负担 1.2.缺点 浏览器对XMLHttpRequest对象的支持度不足,几乎所有浏览器现在都支持 破坏浏览器"前进"."后退"按钮的正常功能,可以通过简单的

javascript配合DataGrid操作常用函数

datagrid|javascript|函数 javascript实现datagrid客户端checkbox列的全选,反选 作者:未知来源:网络/**//* 分页    参数说明:    prefix:前缀:chkAll:全选框:chkSingle:单选框ID        使用方法:    if(e.Item.ItemType == ListItemType.Header)    {        ((CheckBox)e.Item.Cells[1].FindControl("chkAll&q

javascript学习笔记3-构造函数、类和原型

3.构造函数.类和原型 总述: 对象是我们很熟悉的,常在程序中用它.那么,如何来区分一个对象与另一个对象的区别呢?类就做到了这点,对象是类的一个实例. Js中的类与java的类不太一样,但是它构造函数和原型来来支持类. 3.1构造函数 我们在程序里使用对象时常常先new一个object,然后再给这个object赋属性,然后再使用这个object来实现我们想要的功能.很经常的,new一个无参数的object,我们这样写: Js代码 var o = {}; 其实它的实现与下面的代码是一样的: Js代

Python学习笔记之常用函数及说明_python

基本定制型 复制代码 代码如下: C.__init__(self[, arg1, ...]) 构造器(带一些可选的参数)C.__new__(self[, arg1, ...]) 构造器(带一些可选的参数):通常用在设置不变数据类型的子类.C.__del__(self) 解构器C.__str__(self) 可打印的字符输出:内建str()及print 语句C.__repr__(self) 运行时的字符串输出:内建repr() 和'' 操作符C.__unicode__(self)b Unicode

JavaScript学习笔记之JS函数_基础知识

函数就是包裹在花括号中的代码块,前面使用了关键词function: 复制代码 代码如下: function functionName() {     这里是要执行的代码 } 函数参数 函数的参数可以任意多个,不用声明变量类型,只用给出变量名: 复制代码 代码如下: function myFunction(name, job) {     这里是要执行的代码 } 函数返回值 在函数中使用return语句,函数会停止执行,返回调用它的地方. 函数的返回值也不用声明类型,直接返回即可. 复制代码 代码

javascript构造函数: JavaScript学习笔记(二十四) 模块创建构造函

 模块创建构造函数(Modules That Create Constructors)在前面的例子中,创建了一个MYAPP.utilities.array对象,但有时候使用构造函数创建你的对象更方便,你也可以使用模块模式实现它.唯一的不同就是在包裹模块的立即执行函数返回一个函数而不是对象.下面这个例子就是模块模式创建一个构造函数 MYAPP.utilities.ArrayMYAPP.namespace('MYAPP.utilities.Array');MYAPP.utilities.Array

Javascript 学习 笔记二

1.查找HTML元素             通常,通过 JavaScript,您需要操作HTML 元素.      为了做到这件事情,您必须首先找到该元素.有三种方法来做这件事:      通过id找到HTML元素(本例查找 id="intro" 元素) var x=document.getElementById("intro");         通过标签名找到HTML元素(本例查找 id="main" 的元素,然后查找 "main

javascript学习笔记(七) js函数介绍_基础知识

1.函数内部属性 arguments arguments用来保存函数的参数,arguments.callee指向拥有arguments对象的函数 复制代码 代码如下: //阶乘 function factorial(num) { if (num <= 1) { return 1; } else { return num*arguments.callee(num-1); //用agreements.callee代替 } } var trueFactorial = factorial; factor