我的個人部落格:
接上篇文章
js編碼的實用技巧(一)
使用||可以作為引數之外的預設值,當第乙個引數返回值為false時,那麼第二個值就為預設值。
一般在物件導向思想中這麼使用。
function user(name, age)
var user1 = new user();
console.log(user1.name); // leonwu
console.log(user1.age); // 29
var user2 = new user("delia", 28);
console.log(user2.name + " is my wife"); // delia is my wife
console.log(user2.age); // 28
看看下面的例子,我相信你就會立馬理解了
var x = 10,b = null;
if (x > 5) else
這段**用三木運算簡寫為
b = x > 5 ? 7 : 2;
//解釋一下上面的**
// 當x > 5 時返回7並賦值給b,反之則返回2賦值給b
因為== 和 != 在做判斷時,會在某些情況下進行隱式型別轉換,但是 === 和 !== 卻不會,並且它們會同時對值大小和值型別進行比較,所以=== 和!== 要比== 和!=的處理速度快。
看例子
[5] == 5; //true
[5] === 5; //false
"5" == 5; //true
"5" === 5;//false
"" == 0; // true
"" === 0; //false
== "" //true
=== "" //false
var items = [123, 81 , 'abc' , 234 , 781 , 'leonwu', 114, , 'delia' , 110 , 120];
var randomitem = items[math.floor(math.random() * items.length)];
稍微解釋一下上面的**
math.floor()這個方法為js內建的方法,向下取整,即math.floor(2.9)結果為2,math.floor(2.1)結果也為2。
math.random()為在[0-1)之間取乙個隨即浮點數,包括0但不包括1;
所以上面randomitem的結果是[0-9]之間的乙個隨即整數。
這個方法應該是上面第8條的加強版,只要理解上面的方法,那麼這個方法理解起來就不會有難度。在這裡多一嘴,很多東西靠死記硬背是記不住的,但是只要你理解了,那麼你想忘記就比較難了。好了,不扯淡了,我們開始
上**
//先看看下面這個方法,不理解不要緊,繼續向下看你就會理解它
var a = math.floor(math.random() * (max - min + 1)) + min;
//下面就讓我們慢慢的理解上面這個方法是怎麼來的
//先寫出在[0-10]之間取隨機整數的方法
var b = math.floor(math.random() * 10) //這個返回的是[0-10),不包括10,最大到9
b = math.floor(math.random() * (10 + 1)); //這樣就能取到[0-10]之間的隨即整數了
//然後取乙個[30-40]之間的隨機整數
//我們把上面的任務分解為先取乙個[0-10]之間的隨機整數,然後再加上30,是不是就能滿足我們上面的需求了,看**
var c = math.floor(math.random() * (40-30 + 1)) + 30;
//那我們要取[max-min]之間的隨機整數,**是不是就為
var a = math.floor(math.random() * (max - min + 1)) + min;
//我們是不是已經理解了這段**的意義呢,是不是想忘記都會很難呢?如果沒理解就再多想想。
我的個人部落格:
C 實用技巧(二)
上一篇文章講到了如何檢查記憶體洩露。其實只要肯用c 的stl裡面的高階功能的話,記憶體洩露是很容易避免的。我在開發vczh library 3.0的時候,所有的測試用例都保證跑完了沒有記憶體洩露。但是很可惜有些c 團隊不能使用異常,更甚者不允許寫建構函式析構函式之類,前乙個還好,後乙個簡直就是在用c...
js之async, await實用技巧
同步變異步 看到這有人就奇怪了,好好的同步 為啥要變異步?其實我也不想,這有可能是為了後續的擴充套件。比如如下場景 有個判斷使用者登入的方法islogin,我們可以在首次進入頁面時將登入資訊儲存起來,比如使用localstorage,這樣就可以用locastorage.getitem islogin...
js 處理URL實用技巧
escape encodeuri encodeuricomponent 三種方法都能對一些影響url完整性的特殊字元進行過濾。但後兩者是將字串轉換為utf 8的方式來傳輸,解決了頁面編碼不一至導致的亂碼問題。例如 傳送頁與接受頁的編碼格式 charset 不一致 假設傳送頁面是gb2312而接收頁面...