javascript的那些事兒你都懂了嗎


  javascript從開始的驗證表單的腳本語言發展到現在能運行在服務器上,其影響力不斷的提升。自己作為一個做前端的,編寫js是必不可少,從自己學習js的歷程來看其實也是比較吃力。要 學好它,還是的花費一些精力。下面來說說我學習到的一些js特性吧。

1.對象的屬性名使用引號的疑惑

  當我們在申明一個對象字面量的時候,經常看到對象的屬性名有的有引號,有的沒有,那時候我就是覺得非常困惑,它們之間有什么區別呢?這個我困惑很久了。后來,在一本書上不經意的 看到了關於對象的屬性名有無引號的解釋。

 1.1 當對象的屬性名是合法的標識符且不是保留字時,是不需要使用引號的,當然使用也沒有問題,只不過是多此一舉而已。

var object = {
    first_name: 'javascript',
    city: 'shenzhen'
}

 1.2 當你的對象屬性名包含不合法的標識符或是保留字的話,就必須使用引號。

var object = {
    'first-name': 'javascript',
    //first-name: 'javascript', 不合法包含-
    city: 'shenzhen'
}

2.對象的檢索

  大家都是知道,要檢索對象里的包含值,有兩種方式,一采用xxx['xxx'],二采用.表示法。我不知道大家看到這兩個檢索方法,你有何看法,你知道其中的差異沒有。

  2.1 如果字符串表達式是一個字符串字面量,而且它是一個合法的javascript標識符且不是保留字,建議使用"."表示法代替,因為它更加緊湊且可讀性更好。

var object = {
    first_name: 'javascript',
    city: 'shenzhen'
}
console.log(object.first_name);  // '.'表示法

  2.2 當然xxx['xxx']也是有其優勢的,例如檢索的對象的屬性名不是合法的或是保留字,它就是派上用場。

var object = {
    'first-name': 'javascript',
    //first-name: 'javascript', 不合法包含-
    city: 'shenzhen'
}

onsole.log(object['first-name']) // javascript 

console.log(object.first-name) // NaN 

 2.3xxx['xxx']還有一個更重要的作用是,當它要檢索的屬性名是動態變化的(變量)時,必須使用xxx['xxx']這種方式。

for(var att in object){
    console.log(object[att]);
}

3.+號在javascript的使用

 "+"在其他語言中只是用作加法運算,但在js中它有兩個功能加法元算及字符串連接符。

 其一,做字符串連接符使用時,拼接字符串作用。

var str = 'hello';
var result = str + ' world';
console.log(result); // hello world

 其二,做加法運算

var val1 = 5, val2 = 6 , sum = 0;
sum = val1 + val2;
console.log(sum) // 11

+還有就是可以起到轉換數據的作用,不知道這樣講是否合理,但是大家看到下面的例子就大概明白

var str = '123';

console.log(+str)
console.log(typeof +str); // number

var date = new Date();
console.log(+date); // 轉換成日期毫秒數

在日期對象前面加個+就能轉換成日期毫秒數,而不需要使用其getTime方法,大家是不是覺得很奇妙。

4.==,!= 和===,!==的差異

==,!=在使用的時候會進行強制類型轉換,其實這是很糟糕的做法,可能會掩蓋因類型引發的錯誤,還會影響性能。

當使用==時,會進行強制類型轉換

var arg = '';
if(arg == 0){
    alert('類型轉換成功!');  // 執行這句
}else{
    alert('類型轉換失敗!');
}

當使用===時,直接比較直,不會進行強制類型轉換

var arg = '';
if(arg === 0){
    alert('類型轉換失敗,只能同類型比較!');  // 執行這句
}

5.parseInt()

  說到這個大家都用的很熟啦,他有兩個參數,第一個是要傳入轉換的字符串,第二個是要解析的數字的基數。第二基數是很關鍵的,在我之前使用的經常不寫第二參數,因為默認是10進制的。但是有的瀏覽器是會根據字符串也判斷要轉換的進制數據

var str = '09' ;
console.log(parseInt(str)); // 有的瀏覽器是0

為了避免這種兼容問題最好是帶上第二個參數,就不會有這個兼容問題。

var str = '09' ;
console.log(parseInt(str, 10)); // 9

  以上講的知識都是很基礎但是很實用的技術基礎,當我們有了牢固的基礎,那后面的復雜程序就是在這些基礎上累加的。我也是走在js路上的人,很多知識點都還在學習積累中。希望我這文章對基礎還不是很好的同學有所幫助。我寫這個也是拋磚引玉,希望更多的高手能夠留言指引更多js中的奇思妙用,歡迎留言交流。

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM