javascript跳躍式前進(1) - 基本概念

來源:互聯網
上載者:User

javascript跳躍式前進(1) - 基本概念
前言

javascript 是弱類型語言,比較接近python和perl這類,不如java和c那樣嚴格.所以寫慣了強型別語言的小夥伴看到有些另類的寫法也相當正常;

有些東東不精講..以後單獨脫離出來細講;

要點提取:文法區分大小寫[非常重要哦,比如True和False就不是布爾值了,而是標示符] 和強型別基本大同小異,以強型別的命名風格基本沒什麼錯誤;推薦駝峰大小寫 注釋有單行和多行注釋 strict 模式,速度運行是最快的;但是相當多的東西給限制了 語句以分號結尾,支援多變數定義[逗號隔開],在語句多的時候,鏈式寫法速度有一定的速度提升; 關鍵字和保留字不允許來做變數名[具體查表去吧..很多]資料類型

有這麼些資料類型: undefined(未定義) , Null(空值 – 特殊值) , Boolean(布爾值) , Number(數值) , String(字串) , Object(對象,這個範圍挺廣,Array也屬於其中)

undefined : 變數未初始化的預設值 null : 是一個特殊的對象[空的對象引用] boolean : 只有true和false兩個值,值得注意的是0和1不一定代表false和true Number : js沒有雙精確度.只有單精確度..也不像強型別語言,根據是否有小數點且跟值來定義浮點還是整數 , 數值溢出為infinity,[NaN是一個特殊的數值] String : 字串 Object : 函數就是對象..在JS中函數在沒有傳回值時預設返回的一個對象資料判斷

typeof , instanceof , hasOwnProperty, isPrototypeOf ,isArray

typeof : 會把大多類型歸為對象 instanceof : 用於判斷一個變數是否某個對象的執行個體 hasOwnProperty:是用來判斷一個對象是否有你給出名稱的屬性或對象。不過需要注意的是,此方法無法檢查該對象的原型鏈中是否具有該屬性,該屬性必須是對象本身的一個成員。 isPrototypeOf: 是用來判斷要檢查其原型鏈的對象是否存在於指定對象執行個體中,是則返回true,否則返回false。 isArray : ES5添加專門判斷是否為數組的資料轉換Number() : 可以把允許轉換成數值的內容變成數值,比如字串”123”[前置0會忽略],Null 字元串為0,除能轉為數字格式外的字元都會轉為NaN paseInt() : 轉換字串為整數,若是”111ee”只會得到111,逐個字元遍曆的[若是非數字開頭則不會遍曆,遇到小數點也會停止].. parseFloat() : 轉換字串為浮點數,與上面那個類似 Boolean() : 轉為布爾值 String() : 把值轉為字串,對象轉換會調用ValueOf(),與toString()效果基本一致操作符一元操作符 : 包括加減乘除,前置減減加加和後置減減加加[前置先賦值生效再執行,後置執行後再運算] 按位操作符 : 跟強型別語言一致,包括按位非(~)[值的反值,真假調換],按位與(&)[同為真才為真,其他為假],按位或(|)[存真即為真,同假才假],按位異或(^)[相同為假,不同為真] 左移和右移: 左移為乘以2的次冪,右移除以2的次冪..無符號右移[正數不變,符號會因為左邊填充0變成一個相當大的正值] 邏輯運算子 : 邏輯與(&&)[同為真才為真,其他為假] ,邏輯或(||)[有真即為真,同假才為假] 相等操作符 : = [賦值,有複合操作符(可以配合加減乘除求餘等運算子 ,例如 a %= 3 , b *= 2;)] , == [若允許轉換成比較的類型,自動轉換匹配的類型比較] , === [強等,不轉換比較,同時比較類型和值] 條件運算子[三目運算子] : (expression)? true : false ; 運算式真假來擷取對應的傳回值流量控制語句

流量控制語句,,大多程式設計語言都是大同小異~~~~

if語句
//推薦帶花括弧,且花括弧左邊緊貼運算式,可以降低文法解析識別為錯誤的問題[解析器會自動給一些變數或者語句添加分號]if(conditions) {  ... }else if{ ...}else{ ...}
do-while語句
  //先執行do裡面的邏輯,再執行判斷運算式來確定下一步是否執行  do{   statement;  }while(expression)
while語句
   //適合不知道應該迴圈多少次的,符合條件就無限執行,帶花括弧是一個好習慣   while(expression){     statement;  }
for語句
  //適合有限的迴圈 for(initialization ; expression ; post-loop-expression){    statement;}
for-in語句
  //[ES5]適合來枚舉對象的屬性,遇到值為null或者undefined則會拋出錯誤   for(proerty in expression){        statement;   }
forEach語句
 //[ES5] 適合遍曆數組,缺點:不能用break跳出迴圈和用return語句 //傳統是用for來遍曆數組...見仁見智哈var arr = [1,2,3,4];arr.forEach(function(value){console.log(value)})//結果集: 1,2,3,4,undefined
for-of語句
   //[ES6]這貨的出現,更加方便了數組的遍曆...   //它避免了for-in的所有缺陷;   //與forEach()不一樣,它支援break,continue和return。   var arr = [1,2,3,4];     for(var i of arr){       console.log(i)   }   //結果集: 1,2,3,4,undefined
label語句
    //跟goto好類似....一般配合break和continue語句;在多重嵌套迴圈的時候,可以滿足條件直接跳出整個迴圈(標籤指定的位置)   label : for(initialization ; expression ; post-loop-expression){    statement;  }
break和continue語句
    //break是跳出迴圈(中斷執行)    //continue是跳出這次迴圈,進入下一次迴圈(只是跳過合格那一次迴圈,會繼續執行到結束)
switch語句
   //文法和進階程式設計語言大同小異,適合多重判斷(當然不嫌棄麻煩可以用if..elseif...else)   //小提示.若不是要執行多個運算式..記得每個對應判斷條件後必須break結束;否則會依次往下尋找對應的值,其上的所有非包含break的都會執行;   switch(expression){        case value1 : statement; break;          case value2 : statement; break;          case value3 : statement; break;           ...        default:statement;break; }
函數 最簡單的聲明函數
   /*    與大多程式設計語言一樣..函數執行到return語句就結束該函數了..不管後面還有木有運算式;     因為JS是弱類型語言..  在ES6前,有些東西不得不類比,比如匿名函數,閉包,"花樣式"繼承       有點值得一提的是,,JS木有重載(當前,以後就不曉得會不會增加)     這裡不多說..到時候在新文章拖出來細細揣摩*/    function say(){          console.log("Hello world!");    }    say();    function say1(args1,args2){          console.log("Hello world!");    }    say1();
總結

就我個人而言..原生JS我是折騰的比較痛苦的…花樣太多;繼續磨練~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.