javascript常用对象

来源:互联网 发布:分水岭分割算法流程图 编辑:程序博客网 时间:2024/06/05 04:50

数组的应用

a.顺序查找

var a = [3,7,11,57,94,34,47,35,23,12];

    var num = Number(prompt("请输入要查找的值"));

    var index = -1;//最初认为要找的数不在数组中

    for(var i in a){

        if(a[i] == num){

            index = i;

            break;

        }

    }

    alert(index);

这种查找方法最简单,但是查找次数与数据量成正比,效率不高。

b.折半查找(二分查找)

假设在一个已经有序的数组中,可以利用折半查找大幅提高效率。

<script>

    /*

    * 思路:

    * (1)用start表示查找范围的起点,end表示终点

    * (2)只要start<=end就重复步骤(3)

    * (3)和中间(mid)的那个数进行比较

    * a.相等:找到了,结束

    * b.大于:在前半段找,即end=mid-1

    * c.小于:在后半段找,即start=mid+1

    * (4)输出查找结果

    * log2n

    * */

    var a = [3,7,11,12,23,34,35,47,57,94];

    var num = Number(prompt("请输入要查找的值"));

    var index = -1;//最初认为要找的数不在数组中

 

    var start = 0;

    var end = a.length-1;

 

    while(start<=end){

        var mid = Math.ceil((start+end)/2);

        if(num == a[mid]){

            index = mid;

            break;

        }else{

            if(num > a[mid]){

                //在后半段找

                start = mid+1;

            }else{

                //在前半段找

                end = mid-1;

            }

        }

    }

    alert(index);

</script>

折半查找的最坏查找次数和数据量的关系是对数关系,所以说它的查找效率很高,但是任何事情往往都有两面性,它的高效率也是有代价的,也就是要求有序。

(2)排序(冒泡排序)

<script>

    var a = [3,7,11,43,87,5,99,22,51,8];

    for(var i=0; i<a.length-1; i++){

        for (var j=0; j<a.length-1-i; j++) {

            var temp;

            if (a[j] > a[j + 1]) {

                temp = a[j];

                a[j] = a[j + 1];

                a[j + 1] = temp;

            }

        }

    }

    alert(a);

</script>

冒泡排序的代价也是比较大的,很多时候做的是无用功,选择排序进行了优化。

选择排序

(3)队列

先进先出(FIFO),在头部出队(shift()),在尾部入队(push())

var a = [];

    a.push(1);

    document.write(a.toString()+"<br>");

    a.push(2);

    document.write(a.toString()+"<br>");

    a.push(3);

    document.write(a.toString()+"<br>");

    a.shift();

document.write(a.toString()+"<br>");

a.shift();

    document.write(a.toString()+"<br>");

a.shift();

    document.write(a.toString()+"<br>");

(4)堆栈

先进后出(FILO),在尾部进栈(push()),在尾部出栈(pop())

var a = [];

    a.push(1);

    document.write(a.toString()+"<br>");

    a.push(2);

    document.write(a.toString()+"<br>");

    a.push(3);

    document.write(a.toString()+"<br>");

    a.pop();

    document.write(a.toString()+"<br>");

    a.pop();

    document.write(a.toString()+"<br>");

    a.pop();

document.write(a.toString()+"<br>"); 

常用对象

2.1字符串

字符串的定义:定义一个变量,然后直接将字符串赋值给它。

var str = “abc123”;

字符串实际上是字符组成的数组,所以数组的方法它基本上都有。

(1)访问字符串里面的字符:

a.和数组的方式一样(str[i])

b.字符串特有的方式charAt(i)

(2)查找

a.数组方式:indexOf

b.字符串方式:search方法:传入参数(要搜索的子串),返回子串的第一个字符在父串的下标。这个方法对大小写敏感。

search()方法的功能比indexOf更强大,它可以使用正则表达式形式来查找

(3)取子串

a.数组方式:slice():传入参数开始下标和结束下标,并返回子串

b.字符串特有的方法:

substr(start,length):传入参数开始下标和截取长度,取子串,如果没有第二个参数,会截取到最后。

substring(start,end):传入两个参数,第一个参数,开始截取的下标,第二个是截取结束的下标。

(4)替换

a.数组方式:splice()

b.字符串方式:replace():替换字符串中的子串,有两个参数,第一个是要被替换的子串,第二个参数是替换的新的子串。

toUpperCase():小写字母转换为大写字母

var str = prompt("请输入一个英文字符串");//abc

Str = str.toUpperCase();

alert(str);//ABC

toLowerCase():大写字母转换为小写字母

charCodeAt():获取字符串某一个位置字符的Unicode编码

fromCharCode():将某个Unicode字符编码转换为对应的字符

<script>

    var str = prompt("请输入一个英文字符串");

    var result = "";

    for(var i=0; i<str.length; i++){

        var char = str.charAt(i);

        var code = char.charCodeAt();//转成ASCII

        alert(char);

        if(code>=97 && code<=122){

            code = code - 32;

            char = String.fromCharCode(code);

        }

 

        result += char;

    }

    alert(result);

</script>

trim():去除字符串两边的空格符

varstr= "               请输入一个英文字符串              ";
str= str.trim();
alert(str);

split(x):字符串的分割。用字符串“x”进行分割。分割之后是一个数组

数组有一个toString方法,将数组转换成字符串,元素之间用逗号隔开

vara = "a b c";
var result =a.split(" ");
alert(result);//["a","b","c"]

2.2日期

定义:

var d = new Date();

var d = new Date(2017,3,22,8,30,22;

不给参数,定义的日期为执行这条指令时那一刻的系统的时间,当然也可以指定年月日时分秒参数,但是要特别注意的是从0开始,即0表示1月

修改日期分量:

setYear()、setMonth()、setDate()……

获取日期分量:

getYear()、getMonth()

getMilliseconds()是获取毫秒分量

getTime()获取的是1970-1-1 00:00:00至指定日期所经历的毫秒数

 

日期转换成字符串

var d = new Date(2017,3,22,8,30,22);

document.write(d.toString()+"<br>");

document.write(d.toDateString()+"<br>");

document.write(d.toLocaleDateString()+"<br>");

document.write(d.toLocaleTimeString()+"<br>");

document.write(d.toTimeString()+"<br>");

document.write(d.toUTCString()+"<br>");

日期运算

d1>d2

d1-d2:两个日期相隔的毫秒数

 

便捷计算某月天数的方法

var month = 2;

var d = new Date(2017,month,0);

document.write(d.getDate()+"<br>");

2.3其它对象

Math对象

Math.max(n1,n2……):取得一组数据中的最大值

Math.min(n1,n2……):取得一组数据中的最小值

Math.PI:圆周率,π的值

Math.E:算术常量e,自然对数的底数

Math.pow(x,y):计算x的y次方

Math.sqrt(x):返回数的平方根

Math.abs(x):返回x的绝对值

Math.floor(x):对x向下取整

Math.ceil(x):x向上取整

Math.round(x):x四舍五入

Math.random():获取一个0~1的随机数

Number对象

toExponential():科学计数法表示,指数计数法,

var e = 10000;

    var n = e.toExponential();

    alert(n);//1e+4,string

toFixed(x):保留x位小数,并把数字转换为字符串,四舍五入

var e = 1.123;

e = e.toFixed(2);

alert(e);//1.12

toPrecision(x):将数字保留x位,并且返回的是string类型

var a = 1.23243;

var b = a.toPrecision(4);

alert(b);//1.232

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 感冒痰多鼻涕多怎么办 最近鼻涕和痰多怎么办 鼻涕痰多怎么办没感冒 一岁宝宝痰多怎么办 小孩鼻涕和痰多怎么办 鼻子老长鼻屎要怎么办 眼睛老有眼屎是怎么办 眼睛有干眼屎是怎么办 小孩流黄鼻涕是怎么办 孕妇9个月流鼻涕怎么办 流黄鼻涕两周了怎么办 大人流黄脓鼻涕怎么办 鼻子一直流鼻涕像水一样怎么办 6个月婴儿流鼻涕怎么办 9个月婴儿流鼻涕怎么办 狗狗晕车吐了怎么办 小狗又拉又吐怎么办 犬瘟热流黄鼻涕怎么办 2个月幼犬流鼻涕怎么办 5个月宝宝流鼻血怎么办 1岁宝宝感冒鼻塞怎么办 4个月宝宝鼻塞怎么办 4岁宝宝感冒鼻塞怎么办 宝宝4个月流鼻涕怎么办 3个月的宝宝鼻塞怎么办 50天的小孩鼻塞怎么办 鼻子流脓鼻涕2周怎么办 两岁宝宝流清鼻涕怎么办 1岁宝宝流黄鼻涕怎么办 宝宝上火流黄鼻涕怎么办 一周岁宝宝流清鼻涕怎么办 一周岁流清鼻涕怎么办 4岁宝宝感冒发烧怎么办 6个月宝宝流鼻涕怎么办 8岁儿童感冒发烧怎么办 婴儿感冒咳嗽怎么办%3f 小孩流鼻涕鼻塞怎么办最简单方法 宝宝鼻炎鼻子不通气怎么办 小孩晚上睡觉鼻子不通气怎么办 孩子晚上睡觉鼻子不通气怎么办 3个月婴儿流鼻涕怎么办