前端 css和 javascript 代码优化

代码开始

前端并不是只用html+css把页面画出来, 然后js调接口实现动效就OK了, 有一个经常容易被大家忽略的问题, 那就是后期维护, 从这方面一眼就能看出来大神和小白的区别。

没办法道路漫长, 写下此文章用以巩固和提升.

css创建变量

高端的页面都会有自己的风格, 或者蓝色或者红色, 那么定义几个css变量非常便于后期调试整体色调, 比如甲方突然说:“节假日临近, 页面要整体变成红色”, 如果用了css已经创建好了颜色变量, 那只改这一个变量就OK了.

		:root{
            --main-color:#54BBCE;
            --text-color:#ff0000;
        }
        html,body{width:100%;height:100%;background-color: var(--main-color, #999AAA);}
        p.red{color:var(--text-color, #999AAA);}

font简写规则

font-size: 1em; 
line-height: 1.5em; 
font-weight: bold; 
font-style: italic; 
font-variant: small-caps; 
font-family: verdana,serif;

font: 1em/1.5em bold italic small-caps verdana,serif;

background简写规则

CSS2.1
background-color 使用的背景颜色。
background-image 使用的背景图像。
background-repeat 如何重复背景图像。
background-attachment 背景图像是否固定或者随着页面的其余部分滚动。
background-position 背景图像的位置。
CSS3
background-size 背景图片的尺寸。
background-origin 背景图片的定位区域。
background-clip 背景的绘制区域。
background: [background-color] [background-image] [background-repeat] [background-attachment] [background-position] / [ background-size] [background-origin] [background-clip];
eg:
background: aquamarine 
              url(img.png) 
              no-repeat 
              scroll 
              center center / 50% 
              content-box content-box;

margin, padding, border简写

  margin: 20px;/*上下左右均为20px*/
  maigin:10px 20px   /*上下为10px  左右为20px*/
  maigin:50px 80px 30px  /*上为50px  左右为80px  下为30px*/
  margin: 10px 20px 30px 40px;/*上为10px  右为20px  下为30px  左为40px*/

js开始

if else优化

// 1, if else 优化
if(a==1){console.log("a == 1")}
a==1?console.log("a == 1"):false;
a==1&&console.log("a == 1")
//  *********************************************
var a = 1;
if(a){
  a = 1;
}else{
  a = 0;
};
//可写成
var a = 1;
a = a || 0;
//  ********************************************* 过多 if else 
if(a==0){}
else if(a==1){}
else if(a==2){}
else if(a==3){}
else if(a==4){}
else if(a==5){}
else if(a==6){}
//可写成
switch (day) {
   case 0:
       break;
   case 1:
       break;
   case 2:
       break;
   case 3:
       break;
   case 4:
       break;
   case 5:
       break;
   case 6:
       break;
   default:
       break;
}

var data = {
   "0" : "日",
   "1" : "一",
   "2" : "二",
   "3" : "三",
   "4" : "四",
   "5" : "五",
   "6" : "六",
};
data["0"];

Array 添加元素

//  2, Array 添加元素
var arr = [1,2,3,4,5];
//old method
arr.push(6);
//new method 快43%
arr[arr.length] = 6;

var arr = [1,2,3,4,5];
//old method
arr.unshift(0);
//new method 快98%
[0].concat(arr);

Array 检查对象是否具有某属性

// 3, 检查对象是否具有某属性
	// 方法1
var myObject = {
  name: '@tips_js'
};
if (myObject.name) { }

	// 方法2
var myObject = {
  name: '@tips_js'
};

myObject.hasOwnProperty('name'); // true
'name' in myObject; // true

myObject.hasOwnProperty('valueOf'); // false, valueOf 继承自原型链
'valueOf' in myObject; // true

箭头函数

// 4, 箭头函数
	// 使用functions
var arr = [5,3,2,9,1];
var arrFunc = arr.map(function(x) {
  return x * x;
});
console.log(arrFunc )

	// 使用箭头函数
var arr = [5,3,2,9,1];
var arrFunc = arr.map((x) => x*x);
console.log(arrFunc )

字符串拼接不要用加号 " + "

// 4, 字符串拼接不要用加号 " + "
	//method 1
var one = 1;
var two = 2;
var three = '3';
var result = ''.concat(one, two, three); //"123"
	//method 2
var one = 1;
var two = 2;
var three = '3';
var result = one + two + three; //"33" instead of "123"

! !! !!!

单个!表示否认, 双叹号常用来表示 undefined 或者 null

// 4, 字符串拼接不要用加号 " + "
	//method 1
!!"" // false
!!0 // false
!!null // false
!!undefined // false
!!NaN // false

!!"hello" // true
!!1 // true
!!{} // true
!![] // true

补充

    还有什么没注意到的css和js优化小技巧欢迎留言, 我会尽量补充.
    ~~ 欢迎一键三连哦! ~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值