(+newdate()
是簡略寫法,得到毫秒
超過多行顯示省略號
overflow : hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
建構函式才有prototype(可以構造其它物件);
物件的__proto__ 指向其建構函式的prototype屬性,建構函式的prototype有個constructor屬性指向建構函式本身。
number,string,object的__proto__都指向function的prototype;
lastindexof()為某個字元最後出現的位置,從後往前查詢;
isprototypeof是否是原型
hasownproperty()判斷自身的屬性還是繼承來的
in運算子可以用來判斷,某個例項是否含有某個屬性,不管是不是本地屬性。
呼叫resolve
或reject
並不會終結 promise 的引數函式的執行。
new promise((resolve, reject) => ).then(r => );// 2
// 1
then
方法返回的是乙個新的promise
例項(注意,不是原來那個promise
例項)。因此可以採用鏈式寫法,即then
方法後面再呼叫另乙個then
方法。
下面兩種寫法是等價的。getjson("/posts.json").then(function(json) ).then(function(post) );
,就會呼叫如果非同步操作丟擲錯誤,狀態就會變為rejected
catch
方法指定的**函式,處理這個錯誤。另外,then
方法指定的**函式,如果執行中丟擲錯誤,也會被catch
方法捕獲。
// 寫法一
const promise = new promise(function(resolve, reject) catch(e)
});promise.catch(function(error) );
// 寫法二
const promise = new promise(function(resolve, reject) );
promise.catch(function(error) );
比較上面兩種寫法,可以發現reject
方法的作用,等同於丟擲錯誤。
如果 promise 狀態已經變成resolved
,再丟擲錯誤是無效的。
const promise = new promise(function(resolve, reject) );
promise
.then(function(value) )
.catch(function(error) );// ok
上面**中,promise 在resolve
語句後面,再丟擲錯誤,不會**獲,等於沒有丟擲。因為 promise 的狀態一旦改變,就永久保持該狀態,不會再變了。
promise 物件的錯誤具有「冒泡」性質,會一直向後傳遞,直到**獲為止。也就是說,錯誤總是會被下乙個catch
語句捕獲。
一般來說,不要在then
方法裡面定義 reject 狀態的**函式(即then
的第二個引數),總是使用catch
方法。
一般總是建議,promise 物件後面要跟catch
方法,這樣可以處理 promise 內部發生的錯誤。catch
方法返回的還是乙個 promise 物件,因此後面還可以接著呼叫then
方法。
Python冷門知識之dictproxy
眾所周知,python大部分物件的屬性都是由 dict 特殊屬性完成的,而且這個 dict 不僅物件可改變,而且這個屬性本身就可改變。class c object pass obj c obj.sth 10print obj.dict obj.dict sth 100print obj.sth 10...
MaxScript 冷門知識點
teapot001 返回 teapot teapot001 22.317734,36.929871,0.000000 t 返回所有名字前面是t的物體集合 返回 objects t 作用1 包裹後可以使用任意符號作為變數名,比如空格開頭,數字開頭,桌子為了 人性化真是下了苦心 作用2 選擇帶有空格或者...
C語言冷門知識 柔性陣列
什麼是柔性陣列?c99 中,結構中的最後乙個元素允許是未知大小的陣列,這就叫做 柔性陣列 成員。我對此的理解 為 1.是結構體的最後乙個元素。2.具有0個元素。3.無大小 例 我們知道在c語言的語法中不允許存在大小未知的陣列,但由上柔性陣列是個例外,在結構體中 arr是不會發生報錯。柔性陣列的特點 ...