JavaScript基础20.自定义原型方法、去重、封装typeof

找出第一个不重复的值

var str = 'xdfhgbjhgvgcdxszdchgkjk';

function test(str){
  var temp = {};
  
  for(var i = 0; i < str.length; i++){
    var item = str[i];
    if(temp.hasOwnProperty(item)){
      temp[item]++;
    } else {
      temp[item] = 1;
    }
  }
  for(var key in temp){
    var item = temp[key];
    if(item === 1){
      return key;
    }
  }
}
test(str);

闭包

function Test(a, b, c){
  var d = 0;
  this.a = a;
  this.b = b;
  this.c = c;
  
  function e(){
    d++;
    console.log(d);
  }
  this.f = e;
}

var test1 = new Test();
test1.f(); // 1
test1.f(); // 2
var test2 = new Test();
test2.f(); // 1

数据类型

function test(){
  console.log(typeof(arguments)); // 类数组
}
test(); // object
// 函数字面量,忽略函数名
var test = function a(){
  console.log(test.name);
  return 'a';
}
console.log(typeof(a)); 
// undefined -> typeof放一个没有声明的变量一定返回undefined

优化下面的程序

function test(day){
  switch(day){
    case 1:
      console.log('Mon');
      break;
    case 2:
      console.log('Tue');
      break;
    case 3:
      console.log('Wed');
      break;
    case 4:
      console.log('Thu');
      break;
    case 5:
      console.log('Fri');
      break;
    case 6:
      console.log('Sat');
      break;
    case 7:
      console.log('Sun');
      break;
    default: 
      console.log('I don\'t know');
  }
}
test(2)
test(2);

// 优化
function test(day){
  var weekday =  var weekday =[
    'Mon', 'Tue', 'Wed', 'Thu',  'Fri', 'Sat', 'Sun'
  ];
  weekday[day - 1] !== undefined ? console.log(weekday[day - 1])
                                 : console.log('I don\'t know');
}

变形:将上面优化后的结果改为不准用day-1,直接用使用day,应该如何修改

test(2);

// 在数组的第一位前添加逗号,
function test(day){
  var weekday = [,'Mon', 'Tue'];
  weekday[day] !== undefined ? console.log(weekday[day])
                             : console.log('I don\'t know');
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值