border-radius
圓角box-shadow
陰影:X軸偏移值 Y軸偏移值 X軸陰影模糊半徑 Y軸陰影模糊半徑 陰影顏色box-sizing
定義盒模型
content-box
時,寬高的值爲content的寬高border-box
時, 寬高的值爲border+padding+content也就是整個盒模型的寬高;linear-gradient
背景顏色線性漸變radial-gradient
背景顏色徑向漸變text-shadow
文本陰影background-size
設置背景圖像的高度和寬度@keyframs 動畫名稱
定義動畫序列animation: 1s keyname infinite
時間 動畫名 次數transform
變換none
元素不顯示block
顯示爲塊級元素inline
顯示爲內聯元素inline-block
行內塊元素flex
設置爲伸縮盒子inherit
從父元素繼承 display 屬性的值1. absolute + 負margin
.father {
position: relative,
}
.son {
position: absolute;
width: 50px;
height: 50px;
margin-top: -25px;
margin-left: -25px;
}
2. absolute + margin auto
.father {
position: relative,
}
.son {
position: absolute;;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
3. absolute + transform
.father {
position: relative,
}
.son {
position: absolute;;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
複製代碼
.father {
display: flex;
justify-content: center;
align-items: center;
}
複製代碼
.father {
display: grid;
}
.son {
aligin-self: center;
justify-self: center;
}
複製代碼
JS 中的淺拷貝與深拷貝,只是針對複雜數據類型(Object,Array)的複製問題。淺拷貝與深拷貝均可以實如今已有對象上再生出一份的做用。可是對象的實例是存儲在堆內存中而後經過一個引用值去操做對象,由此拷貝的時候就存在兩種狀況了:拷貝引用和拷貝實例,這也是淺拷貝和深拷貝的區別。css
淺拷貝: 淺拷貝是拷貝引用,拷貝後的引用都是指向同一個對象的實例,彼此之間的操做會互相影響html
淺拷貝實現方式前端
1.拷貝原對象的引用jquery
var a = {c:1};
var b = a;
console.log(a === b); // 輸出true。
a.c = 2;
console.log(b.c); // 輸出 2
複製代碼
Array.prototype.slice(), Array.prototype.concat(), jQury的$.extend({},obj)
,var a = [{c:1}, {d:2}];
var b = a.slice();
console.log(a === b); // 輸出false,說明外層數組拷貝的是實例
a[0].c = 3;
console.log(b[0].c); // 輸出 3,說明其元素拷貝的是引用
複製代碼
Object.assign()
實現對象的淺拷貝JSON.stringify(),JSON.parse()
Object.create()
的方法jQury的$.extend(true,{},obj)
...
展開運算符實現淺拷貝Array.from()
從一個相似數組或可迭代對象中建立一個新的數組實例webpack
Array.isArray()
用於肯定傳遞的值是不是一個 Arrayweb
Array.concat()
(不會更改原數組)方法用於合併兩個或多個數組。此方法不會更改現有數組,而是返回一個新數組。算法
Array.every
測試數組的全部元素是否都經過了指定函數的測試小程序
Array.filter()
(不會更改原數組)建立一個新數組, 其包含經過所提供函數實現的測試的全部元素微信小程序
Array.find()
返回數組中知足提供的測試函數的第一個元素的值。不然返回 undefined。設計模式
Array.findIndex()
返回數組中知足提供的測試函數的第一個元素的索引 ected output: 3
Array.includes()
判斷一個數組是否包含一個指定的值,根據狀況,若是包含則返回 true,不然返回false。
Array.indexOf()
方法返回在數組中能夠找到一個給定元素的第一個索引,若是不存在,則返回-1
Array.join()
將一個數組(或一個類數組對象)的全部元素鏈接成一個字符串並返回這個字符串。若是數組只有一個項目,那麼將返回該項目而不使用分隔符。
Array.pop()
(改變原數組)從數組中刪除最後一個元素,並返回該元素的值
Array.push()
(改變原數組)將一個或多個元素添加到數組的末尾,並返回該數組的新長度
Array.reduce()
對數組中的每一個元素執行一個由您提供的reducer函數(升序執行),將其結果彙總爲單個返回值。
Array.reverse()
將數組中元素的位置顛倒,第一個數組元素成爲最後一個數組元素,最後一個數組元素成爲第一個。
Array.shift()
(改變原數組)從數組中刪除第一個元素,並返回該元素的值。
Array.unshift()
(改變原數組)將一個或多個元素添加到數組的開頭,並返回該數組的新長度。
Array.slice()
(不改變原數組)方法返回一個新的數組對象,這一對象是一個由 begin和 end(不包括end)決定的原數組的淺拷貝
Array.sort()
用原地算法對數組的元素進行排序,並返回數組。排序算法如今是穩定的
Array.splice()
(改變原數組)var months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at 1st index position
console.log(months);
// expected output: Array ['Jan', 'Feb', 'March', 'April', 'June']
months.splice(4, 1, 'May');
// replaces 1 element at 4th index
console.log(months);
// expected output: Array ['Jan', 'Feb', 'March', 'April', 'May']
複製代碼
this
指向的問題function foo(){
console.log(this.a)
}
var a = 2
foo() // 2
複製代碼
function foo() {
console.log( this.a );
}
var obj = {
a: 2,
foo: foo
};
obj.foo(); // 2
複製代碼
v-model
放在input、textarea、select>option上的,實現雙向數據綁定v-text
展現對應的文本v-once
對應的標籤只渲染一次v-show=布爾
是否能顯示,true能顯示,false不能顯示(存在隱式轉化)v-html
把值中的標籤渲染出來v-for
循環顯示元素 能夠循環數組、對象、數字、字符串 最好加:key='a+i'v-bind
用於綁定行內屬性 簡寫成:v-if
控制是否渲染該元素 值是true,則渲染該元素;false則不渲染 與v-else v-else-if連着使用 可使用template標籤,就不會出現多餘標籤v-show
和v-if
都是用來顯示隱藏元素,v-if
還有一個v-else
配合使用v-show
v-if
bind()
函數只能針對已經存在的元素進行事件的設置;可是live(),on(),delegate()均支持將來新添加元素的事件設置;on()
方法能夠綁定動態添加到頁面元素的事件,on()
方法綁定事件能夠提高效率Content-Security-Policy: default-src ‘self’
Content-Security-Policy: img-src https://*
// 加鹽也就是給原密碼添加字符串,增長原密碼長度
sha256(sha1(md5(salt + password + salt)))
複製代碼
Cache-control: no-store
,表示該資源不須要緩存。Cache-Control: no-cache
並配合 ETag 使用,表示該資源已被緩存,可是每次都會發送請求詢問資源是否更新。<link rel="preload" href="http://example.com" />
複製代碼