JavaScript語法

xiaobangsky發表於2020-11-25

JavaScript版本

歷史版本
  • ES3,IE6支援,不給力
  • ES5,不給力
  • ES6,大部分瀏覽器支援,一半給力,一半不給力
  • ES2019與ES6差距不大
ES6一半給力,一半不給力?
  1. ES不能刪除以前的特性,要相容舊網站
  2. 以前能執行的網站,以後也能執行
  3. 相對比較穩定

JavaScript語法

表示式\語句\識別符號
表示式
  1. 1+2表示式的值為3
  2. add(1,2)表示式的值為函式的返回值
  3. console.log // log(){[native code]} 表示式的值為函式本身
  4. console.log(3) // undefined console.log(3),它的返回值是undefined,因為console.log函式的返回值是undefined
語句
  1. var a = 1是一個語句
  2. var $1 = 1;var _____ = 1;//不建議這麼寫;var 9a = 1;//報錯,語法錯誤
  3. ;;;//不會報錯,空語句
兩者區別
  1. 表示式一般有值,語句可能有可能沒有
  2. 語句一般會改變環境(宣告,賦值)
  3. 上面兩句話並不是絕對的
特別注意
  • 大小寫敏感
    1. var a與var A不同
    2. object與Object不同
    3. function與Function不同
  • 空格
    1. 大部分空格都沒有實際意義
    2. var a = 1和var a=1無區別
    3. 加回車大部分時候無影響
    4. 只有一個地方加回車,那就是return後面,程式碼舉例
function f(){ return 
    3;
} //預想的是返回3,結果加了回車,返回了undefined;

######識別符號

  1. 第一個字元,可以是Unicode字母或者$或_或中文
  2. 後面的字元,除了上述所說,可以是數字
  3. 變數名是識別符號
//以下js都是支援的
var _ = 1;
var $ = 1;
var ______ = 6;
var 你好 = 'hi'
註釋
  • 不好的註釋
//1.把程式碼翻譯成中文
var person = {
	name:'java'; //name為java
	age:18; //年齡為18
	sex:'男'; // 性別為男
}
//2.過時的註釋
var person = {
	age:19; //年齡為18
}
//3.發洩不滿的註釋
var person = {
	eat:'哈哈';//我擦,就是個傻X
}
  • 好的註釋
    1. 踩坑程式碼
    2. 程式碼為啥這麼寫,遇到什麼bug
區塊block
//1.把程式碼包在一起
{
	let a = 1;
	let b = 2;
}
//2.常常與if/for/while合用
條件語句
//1.if語句
if(){}else{}
/*
//變態情況
11.條件表示式裡面賦值,如a=1
*/
var a = 2;
if( a = 1){console.log("彩筆");}else{console.log("牛逼");}//彩筆
/*
//變態情況
12.多層巢狀if-else
*/
/*
//變態情況
13.縮排
*/
var a = 1;
if( a === 2) console.log(1)  
	console.log(2) //2
//14.推薦用法
if(表示式){
	語句;
}else if(表示式){
	語句;
}else {
	語句;
}
//2.switch語句
switch(age){
	case 18:
	//...
	break;
	case 19:
	//...
	break;
	default:
	//...
}
/*
要注意break不能隨意省掉
*/
//3.三目運算子 表示式? 表示式2:表示式3
//4.邏輯&&
A && B && C && D;//取第一個假值或者D,並不會取true/false
//5.邏輯或
A || B || C || D;//取第一個真值或者D,並不會取true/false

######迴圈語句

  1. while
while(表示式){語句}
//舉例
var i = 1while(i<10){
	console.log(i);
	i = i+1;
}//在chrome中輸出0,1,2,3,4,5,6,7,8,9,10 正確打出0~9,10chrome出bug啦
//這種寫法不要寫
while(true){console.log(1)};//耗CPU效能
//這種寫法會進入死迴圈,原因浮點數精度丟失導致
var a = 0.1;
while(a < 1){
 a = a + 0.1;
}
  1. for
for(var i=0;i < 5; i ++){
	console.log(i);
}//最後輸出的是0,1,2,3,4,i= ? i為5

在這裡插入圖片描述

break/continue

1.break退出本次迴圈

for(var i = 0; i < 5;i++){
	if(i === 3){
		break;
	}
}

2.continue 進行下一個迴圈

for(var i = 0; i < 5;i++){
	if(i === 3){
		continue;
	}
}
label

1.語法

foo:{
	console.log(1);
	break foo;
	console.log(2);
}//1
//Chrome輸出的是一個物件,在火狐裡面是1
{
  foo:1
}
//Chrome輸出的1,在火狐裡面是1
{
	foo:1;
}

相關文章