語句:javascrit程序由語句組成,語句遵照特定的語法規則。例如:if語句,while 語句,with語句javascript
塊語句經常使用於組合 0~多個語句。塊語句用一對花括號定義java
{ 語句1; 語句2; }
一般與 if 、while結合使用安全
if(true){ console.log("hi") }
for(var i =0 ; i<10 ; i++){ //i雖然聲明在for裏面但在外面也能夠訪問 var str = "hi"; console.log(str); }
var i=0; for( ; i<10;i++){ var str = "hi"; console.log(str); } //此種寫法同上面做用相同
function foo(){ var a = 1; console.log(a); //1 } foo(); console.log( typeof a) ; //undefined 不能夠訪問
當使用 var a = b =1; 確實建立了兩個變量並一個且賦值爲1,可是 b 是隱式的建立了全局變量。函數
function foo(){ var a = b = 1; } foo(); console.log(typeof a) ; //"undefined" consloe.log(typeof b) ; // number b爲全局變量
2) 在一條語句中聲明多個變量oop
var a =1 ,b =1;spa
try 後面必定要接一個catch() 或 finallycode
try{ throw "test"; }catch(ex){ //拋出異常時執行 console.log(ex); // test }finally{ //最後必定會執行 console.log('finally') }
try2 拋出一個異常 "opps",在try2 裏面沒有catch,因此會跳出尋找最近的catch,但會先執行finally對象
try{ /************try2***************/ try{ throw new Error("opps"); }finally{ console.log("finally"); } /*****************************/ }catch(ex){ console.error("outer" , ex.message); }
finallyip
outer opps原型鏈
try{ /************try2****************/ try{ throw new Error("oops"); }catch(ex){ console.error("inner",ex.message); }finally{ console.log("finally) } /************try2****************/ }catch(ex){ console.error("outer" , ex.message); }
裏面拋出一個異常,在裏面直接處理
inner oops
finally
若是裏面的異常沒有處理拋出了,則在外部處理異常以前,會先處理內部 finally語句
function fd(){ //do sth return }
var fe = function(){ //do sth }
函數聲明會被預先處理,函數前置
//正確 fd() function fd(){ //do sth return }
函數表達式不能夠在聲明前調用
//錯誤 fe(); TypeError var fe = function(){ //do sth }
var p; var obj = { x: 1, y:2} for(p in obj){}
var obj = {a:1,b:2,c:3} for( var prop in obj){ console.log("obj." + prop + "=" +obj[prop]) } /*********Output************/ obj.a=1 obj.b=2 obj.c=3
循環遍歷對象屬性
var val = 2; switch(val){ case 1: console.log(1); break; case 2: console.log(2); break; default: console.log(0); break; }
結果輸出2
也能夠多個條件執行一個語句
var val = 2; switch(val){ case 1: case 2: console.log(1,2); break; default: console.log(0); break; }
with語句能夠修改當前做用域(不建議使用)
with({x:1}){ console.log(x); } //在with語句中能夠直接使用 x輸出1,不用對象.x
嚴格模式是一種特殊的執行模式,它修復了部分語言上的不足,提供了更強的錯誤檢查,並加強安全性
function func(){ 'use strict'; //嚴格模式 }
或能夠在js文件前使用 'use strict' ,整個文件嚴格模式