前言

本文主要是练习如何获取文件拓展名的练习。之前有分享过一个方案,但是早晨有复习字符串语法中有涉及到一个方法交lastIndexOf(),所以想就这个问题应该有个更好的方案。

原来的方案

  1. const extname = (filename) => {
  2. let arr=filename.split(".");
  3. let len=arr.length;
  4. let extname=''
  5. if(len>1){
  6. extname = arr[len-1];
  7. extname =arr[len-2]==''?'': `.${extname}`;
  8. return extname
  9. }
  10. return extname
  11. }

改进后的方案

其中增加了对多种情况的解读,对于不符合要求的返回空,解释如下:
1 最后一个点后无后缀名的
2 无点,没有办法实现后缀名的
3 有点但是前面无文件名的

  1. const extname2 = (filename) => {
  2. let index=filename.lastIndexOf (".");
  3. let len = filename.length
  4. if(index<=0||index==len-1){
  5. return ''
  6. }else{
  7. return filename.substring(index,len)
  8. }
  9. }

拓展

我们经常在页面中会显示今天是今天几,很多前端都应该写过,但你写的方式是如何的?好的代码,高级的前端在很多代码细节能秒杀我们,千万不能因为自己也会框架就和架构师或者大牛画等号,基础非常重要。

  1. let now = new Date()
  2. let week = now.getDay()
  3. //写法一
  4. switch(week){
  5. case 1:console.log('周一')
  6. break;
  7. case 2:console.log('周二')
  8. break;
  9. case 3:console.log('周三')
  10. break;
  11. case 4:console.log('周四')
  12. break;
  13. case 5:console.log('周五')
  14. break;
  15. case 6:console.log('周六')
  16. break;
  17. case 0:console.log('周日')
  18. break;
  19. }
  20. //写法二
  21. let weekArr=['日',"一","二","三","四","五","六"]
  22. console.log(`周${weekArr[week]}`)
  23. //写法三
  24. let weekStr ='日一二三四五六'
  25. console.log(`周${weekStr.charAt(week)}`)

codepen

codepen代码地址