1. 数组中通过赋值语句来改变值

var a = 1;
var msg = ["value0","value1"];
for(var i = 0;i<10;i++){
  alert(msg[a = a == 1 ? 0 : 1]);// 0,1,0,1…
}

能实现切换两个不同的值。  msg[a=1] 相当于 msg[1], a=1,同时执行赋值和取值

2.类型转换

一般把"123"转成number类型,都是parseInt("123");但是也可以这样:

var a= "123";//string 10
var a1 = parseInt(a,10);//number 10
var a2 = +a;//number 10
var a3 = a*1;//number 10


var a = 0;
alert(!!a);//强制转换为boolean

3. onclick和 href

 <a href="go.html" onclick="doSomething();"></a>

如果跳转之前做判断的话,传统的写法:

function doSomething(){
    var res = confirm("u want go?");
    if (res) {
        window.location.href = "go.html";
    };
}

dosomething返回的是false,则不会跳转页面,so we can achieve it like this:

function doSomething(){
    return confirm("u want live?");
}

4.获取数组中最大最小值

通常,我们给Array做原型拓展,如下:

        if(typeof(Array.prototype['max']) == 'undefined'){
            Array.prototype.max = function(){
                var length = this.length;
                if(length){
                     var max = this[0];
                     for(var i=0;i<length;i++){
                        if(this[i] > max){
                            max = this[i];
                        }
                     }
                     return max;
                }else{
                    // 空数组
                }
               
            }
        }

        alert([2,3,19,223].max());//223

我们知道javascript原生的Math对象提供了比较大小的方法,

alert(Math.max(1,4,2,919,222));    //919

同样的 ,我们知道apply方法可以改变this的值,并将参数与数组形式传递,所以可以巧妙的运用:

if(typeof(Array.prototype['max']) == 'undefined'){
            Array.prototype.max = function(){
                var length = this.length;
                if(length){
                    return Math.max.apply({},this);
                }else{
                    // 空数组
                }
               
            }
        }

或者

Array.prototype['max'] = Array.prototype['max'] || function(){
  var length = this.length;
                if(length){
                     var max = this[0];
                     for(var i=0;i<length;i++){
                        if(this[i] > max){
                            max = this[i];
                        }
                     }
                     return max;
                }else{
                    // 空数组
                }
}

5. javascript 检测对象类型

/* 检测对象类型
 * @param: obj {JavaScript Object}
 * @param: type {String} 以大写开头的 JS 类型名
 * @return: {Boolean}
 */
function is(obj, type)  {
  return Object.prototype.toString.call(obj).slice(8, -1) === type;
}

  

is('sofish', 'String') // true
is(null, 'Null') // true
is(new Set(), 'Set') // true

6.正则表达式与replace方法

 str.replace(/正则/,'替换的内容'|| function(match){/* todo */})

var source = '<tr><td>{$id}</td><td>{$name}</td></tr>';
console.log(source.replace(/{\$id}/g,'10'));
console.log(source.replace(/[<>&]/g,function(items){
  switch(items){
    case '<' :
      return '<';
      case '>' :
      return '>';
  } 
}));

7.用js实现随机选取10–100之间的10个数字,存入一个数组,并排序  

 

posted on 2014-07-21 20:08  Earlene  阅读(173)  评论(0编辑  收藏  举报