JS基础常见代码小例子

1.字符串反转,如将 ‘12345678’ 变成 ‘87654321’

思路:先将字符串转换为数组 split(),利用数组的反序函数 reverse()颠倒数组,再利用 jion() 转换为字符串

var str = '12345678';
str = str.split('').reverse().join('');

2.将数字 12345678 转化成 RMB形式 如: 12,345,678

思路:先将数字转为字符, str= str + ‘’ ;

//利用反转函数,每三位字符加一个 ','最后一位不加; re()是自定义的反转函数,最后再反转回去!
for(var i = 1; i <= re(str).length; i++){
    tmp += re(str)[i - 1];
    if(i % 3 == 0 && i != re(str).length){
        tmp += ',';
    }
}

3.生成5个不同的随机数

思路:5个不同的数,每生成一次就和前面的所有数字相比较,如果有相同的,则放弃当前生成的数字

var num1 = [];
for(var i = 0; i < 5; i++){
    num1[i] = Math.floor(Math.random()*10) + 1; //范围是 [1, 10]
    for(var j = 0; j < i; j++){
        if(num1[i] == num1[j]){
            i--;
        }
    }
}

4.去掉数组中重复的数字 方法(两种)

思路:每遍历一次就和之前的所有做比较,不相等则放入新的数组中!

Array.prototype.unique = function(){
    var len = this.length,
        newArr = [],
        flag = 1;
    for(var i = 0; i < len; i++, flag = 1){
        for(var j = 0; j < i; j++){
            if(this[i] == this[j]){
                flag = 0;   //找到相同的数字后,不执行添加数据
            }
        }
        flag ? newArr.push(this[i]) : '';
    }
    return newArr;
}
    方法二:
	(function(arr){
    var len = arr.length,
        newArr = [], 
        flag;
    for(var i = 0; i < len; i+=1, flag = 1){
        for(var j = 0; j < i; j++){
            if(arr[i] == arr[j]){
                flag = 0;
            }  
        }
        flag?newArr.push(arr[i]):'';
    }
    alert(newArr);
})([1, 1, 22, 3, 4, 55, 66]);

5.阶乘函数;98765…*1

Number.prototype.N = function(){
    var re = 1;
    for(var i = 1; i <= this; i++){
        re *= i;
    }
    return re;
}
var num = 5;
alert(num.N());

6.加减运算

alert('6'+1); //61 string
alert('6'+'1'); //61 string
alert('6'-1); //5 number
alert('6'-'1'); //5 number

7.匹配输入的字符:第一个必须是字母或下划线开头,后面就是字母和数字或者下划线构成,长度5-20

var reg = /^[a-zA-Z_][a-zA-Z0-9_]{4,19}/,
    name1 = 'xiaozhu',
    name2 = '1xiaozhu',
    name3 = '佩奇xiaozhu',
    name4 = 'hi';
 alert(reg.test(name1));
 alert(reg.test(name2));
 alert(reg.test(name3));
 alert(reg.test(name4));
 true false false false

8.闭包:下面这个ul,如何点击每一列的时候alert其index?

<ul id="test">
<li>这是第一条</li>
<li>这是第二条</li>
<li>这是第三条</li>
</ul>
//非闭包实现
var lis=document.querySelectorAll('li');
document.querySelector('#test').onclick=function(e){
    for (var i = 0; i < lis.length; i++) {
        var li = lis[i];
        if(li==e.target){
            alert(i);
        }
    }
};
//闭包实现
var lis=document.querySelectorAll('li');
for (var i = 0; i < lis.length; i++) {
    var li = lis[i];
    li.onclick=(function(index){
        return function(e){
            alert(index);
        };
    })(i);
}
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值