JavaScript核心语法学习部分(六)

arr.sort():默认安字符串升序排列;

自定义排序:2步:首先定义比较器函数!其次将比较器函数传递给sort方法!

什么是比较器?定义任意两值比较策略的方法

js中方法也是一个比较器,方法名就是指向方法对象的变量名!

function compare(a,b){return a-b;}//可以定义在使用前后的任何位置,原因是var声明和function声明自动提前!

相当于var compare=new Function("a","b","return a-b");//必须定义在使用之前,原因仅声明提前,赋值不提前!

arr.sort(compare);将方法作为对象传递是,仅使用方法名,后不加圆括号。

降序:颠倒比较结果,可以导致升序变降序。

升序:function compare(a,b){return a-b;}

颠倒:function compare(a,b){return -(a-b);}

栈和队列:

什么是栈?先进的后出,栈其实就是数组,只不过用一对儿方法模拟了栈的操作!

结尾入栈出栈:元素下标始终不变

入栈:arr.push()  出栈:var last=arr.pop();  LIFO

开头入栈出栈:所有元素下标岁入栈出栈操作而变化

第一个元素[0],始终最新

入栈:arr.unshift(值1,....)

出栈:var first=arr.shift()

只能从数组一端出栈,入栈。另一端封闭!

案例:十进制转换为二进制

1     var bin=[];
2     var num=131;
3     while(num!=0){
4         bin.push(num%2);
5         num=parseInt(num/2);
6     };
7     bin.reverse();
8     document.write(bin.join(""));

 队列:FIFO,凡是需要排队的实现都需要队列。

案例:排队购票

 1     var count=5;
 2     var queue=[];
 3     for (var i=1;i<=5;i++){
 4         queue.push("顾客"+i);
 5     }
 6     queue.push("你");
 7     document.write("当前排队个数:"+"<br>");
 8     while(count>0){
 9         var custom=queue.shift();
10         document.write(custom+"抢购成功<br>");
11         count--;
12     }
13     document.write(queue+"没抢上");

 二维数组:数组的元素又是另外一个数组对象!

创建二位数组:创建普通数组完全一样,只不过将普通元素,换为一个数组对象而已

例如:var arr=[1,2,3]

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

arr2[3]=[11,12,13];

如何访问二位数组中的任意元素:arr[父数组中的下标][子数组中的下标]

案例:访问二维数组元素

1     var arr2=[];
2     arr2[0]=[101];
3     arr2[1]=[201,202];
4     arr2[2]=[301,302,303];
5     document.write(arr2[2][1]+"<br>");

 如何使用二维数组:数组包含明显上下级关系;

 

内置对象:内置对象就是ECMAScript标准中已经定义好的,由浏览器厂商已经实现的标准对象!内置对象中封装了专门的数据和操作数据常用的API

JS中内置对象列表: -String/Boolean/Number/Array/Date/Mate/Error/Function/Object/Global

包装类型:专门封装原始类型数据,并且提供给数据常用操作的内置类型。

包装类型有:String类型、Number类型、Boolean类型

何时使用包装类型:只要用原始类型的数据调用方法或访问属性时,js引擎都会自动创建对应的包装类型对象,方法调用完后,对象自动释放!

创建原始类型字符串变量:var gender="男";

创建引用类型字符串对象:var carType=new String("BMW528Li");

转义字符:

 

字符串的使用:js中字符串一单创建不可改变

String包装类型;str.length:返回str字符串中的字符个数,比如:str="Hello 马里奥"  //str.length 8

大小写转换的方法:

str=str.toLowerCase():都转为小写

str=str.toUpperCase():都转为大写

何时使用:希望大小写一视同仁时,就要先转换,再处理。

案例:邮箱重复校验

 1     var emails=[];
 2     var input=prompt("请输入邮箱:");
 3     emails.push(input.toLowerCase());
 4     input=prompt("请输入第二个邮箱:")
 5     var i;
 6     for(i=0;i<emails.length;i++){
 7         if(input.toLowerCase()==emails[i].toLowerCase()){
 8             alert("已被使用,请重新输入!");
 9         break;
10         }
11         if(i==emails.length-1){
12             emails.push(input.toLowerCase());
13             alert("注册成功!");
14         }
15     }

 

转载于:https://www.cnblogs.com/Angche/p/7478265.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值