javascript常用对象

数组的应用

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():去除字符串两边的空格符

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

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

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

var a = "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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是几个常用内置对象的使用例题: 1. 字符串对象 ```js let str = "hello world"; // 获取字符串长度 console.log(str.length); // 11 // 转换为大写字母 console.log(str.toUpperCase()); // "HELLO WORLD" // 替换字符串 console.log(str.replace("world", "JavaScript")); // "hello JavaScript" ``` 2. 数组对象 ```js let arr = [1, 2, 3, 4, 5]; // 获取数组长度 console.log(arr.length); // 5 // 获取数组中第一个元素 console.log(arr[0]); // 1 // 循环遍历数组 for (let i = 0; i < arr.length; i++) { console.log(arr[i]); } // 在数组末尾添加一个元素 arr.push(6); console.log(arr); // [1, 2, 3, 4, 5, 6] // 删除数组中最后一个元素 arr.pop(); console.log(arr); // [1, 2, 3, 4, 5] ``` 3. Date对象 ```js let now = new Date(); // 获取当前时间 console.log(now); // Sat Jul 10 2021 14:32:06 GMT+0800 (中国标准时间) // 获取当前时间的年份 console.log(now.getFullYear()); // 2021 // 获取当前时间的月份(0表示1月) console.log(now.getMonth()); // 6 // 获取当前时间的日期 console.log(now.getDate()); // 10 ``` 4. Math对象 ```js // 获取随机数(0-1之间) console.log(Math.random()); // 0.123456789 // 获取一个数的绝对值 console.log(Math.abs(-10)); // 10 // 获取两个数的最大值 console.log(Math.max(1, 2, 3, 4, 5)); // 5 ``` 以上只是一些常用内置对象的例题,JavaScript内置对象非常多,不同的对象有不同的属性和方法,需要根据实际需求灵活运用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值