js基礎高階 編碼實用技巧 二

2022-03-09 03:37:52 字數 2096 閱讀 1212

我的個人部落格:

接上篇文章

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而接收頁面...