JavaScript語法規則:
(1)每一條JavaScript語句都是一條發送給瀏覽器的指令
(2)JavaScript區分大小寫
(3)所有特殊符號均爲英文半角
(4)代碼對空格、換行、縮進不敏感
1 直接量
直接量:又叫字面量,能夠直接使用的內容,常見有的數值、字符串。
(1)數值:1,2,3,1.1,2.2,1.1,-1等
(2)字符串:程序中被單雙引號包裹起來的的內容,都是字符串"hello wold" 'hello' "你好" '我好'...
(3)其它字面量:true false null 正則表達式
更多說明:alert("hello wolrd");//彈出警告框,內容爲字符串字面量
alert(hi);alert(123);alert(true);
2 變量
變量:變化的量,將數據保存在內存中,存儲數據。
(1)變量聲明 var a;
var爲變量聲明的關鍵字,a爲變量;
(2)變量命名規則
區分大小寫;變量名必須以字母、下劃線或者$開頭;變量的組成可以由字母、下劃線、$或數字;不能使用關鍵字和保留字
(3)變量的賦值
var a = 10;變量名=值;
(4)取出變量的值:使用變量名
(5)變量允許重複賦值
更多說明:
var a;//定義一個變量,並且命名爲a
var A;
var $a;
var _a;
a=10; //將10賦值給變量a
alert(a);
alert(123);//數值123
alert('123');//字符串123
var a='hello';
console.log(a);//在控制檯輸出
console.log('world');
var a=10;//在內存中開闢空間,並且命名爲a,然後將數據10存入開闢的空間中
console.log(a);
alert(a);
a=30;//變量的重複賦值
console.log(a);//就近原則
var a=10;
var b=20;
console.log(a,b);
var c=a;//將a變量的值賦值給變量c 變量值的傳遞
console.log(c);//c爲10
a=30;
console.log(a,c);//變量a和c是獨立的空間,a爲30,c爲10
c='hello';
console.log(c);//c爲hello
3 數據類型
JavaScript是一門弱類型語言,在聲明變量時,是沒有數據類型的,一旦賦值之後,變量便有了數據類型。
(1)數值類型 number : 1,2,3,1.1,1.1111,-1 等
(2)字符串類型 string :被單雙引號所包裹的內容 "" '' 例如:'hello' 'world' '12' '1.2'
注意:字符串類型會原樣輸出 "3+5" "^&(*(^*&^*(&(*%^*&&(&"
(3)布爾類型 boolean :true(真) false(假)
(4)其它數據類型:
undefined (未定義) 當一個變量只聲明未賦值時,類型未undefined
null (空)
Object(對象類型、引用類型)
(5)判斷變量的數據類型typeof
注意:類型檢測的結果本身又是字符串類型
console.log(typeof typeof a ) ; //值爲:string
(6)基本數據類型(原始數據類型):number boolean string undefined null
(7)引用類型:Object Function RegExp Array Date........
更多說明:
var a=10;//聲明數值類型
var b='hello';//聲明字符串類型
var c=typeof a;//"number"
var d=typeof b;//"string"
console.log(typeof c);//輸出了一個表達式,本質爲輸出這個表達式的運算結果//string
console.log(typeof typeof a);//string
console.log(typeof typeof b);//string
var a=true;//聲明一個布爾類型
var b=false;
console.log(typeof a);//boolean
console.log(typeof b);//boolean
var a;
console.log(a);//未定義 輸出值爲undefined
console.log(typeof a);//變量只聲明,未賦值 輸出值爲undefined
//1.未定義,直接輸出 值爲error
console.log(a);//error
//2. 變量只定義,未賦值 值爲undefined
var a;
console.log(a);//值爲undefined
console.log(b);
var b;//值爲undefined
//3. 變量未定義,直接賦值,可以使用
a=20;
console.log(a);//值爲20
//4.變量提升機制
a=10;
var a;
console.log(a);//值爲10
//等同於如下代碼 不推薦使用上述做法
var a;
a=10;
console.log(a);
5.var c=null;//空 什麼都沒有
console.log(typeof c);//引用類型 "object"
console.log(typeof typeof c);//值爲string
var a=123;
console.log(typeof a);//值爲number
console.log(typeof 123);//值爲number
6.var a=NaN;// not a number
console.log(typeof a);//值爲number
7.賦值語句遵循順序結構
console.log(a);//undefined
var a=20;
console.log(a);
//以上代碼等同於
var a;
console.log(a);
a=20;
8.聲明多個變量,多個變量之間用逗號隔開
var a,b,c;
a=10;
b=20;
c=30;
console.log(a,b,c);
var a1=10,a2=20,a3=50;
console.log(a1,a2,a3);
var b1,b2=10,b3;
console.log(b1,b2,b3);
4 運算符
1.運算符根據運算符兩邊操作數的不同,分爲:一元運算符、二元運算符、三元運算符
2.按照功能不同分爲:
(1)算術運算符:+(加法運算) -(減法運算) *(乘法運算) /(除法運算)%(取餘運算)
一元運算符:++自增運算符 --自減運算符
運算符後置和前置:不出現賦值時,執行自增自減運算;出現賦值時,先賦值,後運算
注意:若+運算符兩邊的操作數只要有一個爲字符串,則執行拼接操作
(2)賦值運算符:= += -= *= /= %=
(3)關係運算符(比較運算符):> < == >= <= != ===(真等於,全等) !==
關係運算符的運算結果爲布爾類型true、false
注意:==只比較數值是否相等 ===不僅比較數值是否想等,還比較數據類型
(4)邏輯運算符:邏輯運算符的運算結果爲布爾類型 true false
|| (邏輯或):當兩邊的表達式運算結果有一個爲真(true),則結果即爲真(true),兩邊均爲假(false),則爲假
&&(邏輯與):僅當運算符兩邊的表達式結果均爲真(true),則運算結果才爲真(true)
!(非):取反
更多說明:
var a=10;
var b=20;
var c=a+b;
console.log(c);
console.log(a+b);
console.log(a*b);
console.log(a/b);//0.5
console.log(a-b);
console.log(a%b);//餘數
var a=0.1;
var b=0.2;
console.log(a+b);//0.3000...000004
爲什麼操作小數會出現誤差?
浮點數值的最高進度是17位小數,但在進行運算的時候其精確度卻遠遠不如整數;整數在進行運算的時候都會轉成10進制; 而Java和JavaScript中計算小數運算時,都會先將十進制的小數換算到對應的二進制,一部分小數並不能完整的換算爲二進制,這裏就出現了第一次的誤差。待小數都換算爲二進制後,再進行二進制間的運算,得到二進制結果。然後再將二進制結果換算爲十進制,這裏通常會出現第二次的誤差。
var a='hello';
var b='world';
console.log(a+b);//字符串拼接
console.log('5'+3);//53
console.log(5+5+'3');//103 string
console.log('5'+5+3);// '55'+3