JavaScript變數,資料型別,運算子
阿新 • • 發佈:2019-01-11
一.直接量和變數
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> 1.直接量:字面量 數值 :1,2,3,4,5,1.1,1.11,1.356,-1,-2,-3 字串:由單雙引號包裹起來的內容 'hello world' "hello world" 其他:布林 true/false null 直接量 alert(111); alert(1.19); alert(-5); alert('hello world'); alert('3.14');字串 alert(3.14);數值 alert(true); alert(false); </script> </head> <body> </body> </html>
<!DOCTYPE html> <html> <head> <title>變數</title> <script type="text/javascript"> 1.變數:變化的量 2.定義變數:變數需要先定義在使用 var 變數名; 變數名的命名規則: 1)變數名必須以字母、下劃線、$開頭 2)變數名可以包含數字、字母、下劃線、$ 3)變數名區分大小寫 4)不能使用關鍵字和保留字 3.變數的賦值(變數的初始化): 變數名=值; 4.讀取變數中的資料(變數的取值) 變數名 5.若變數只定義,未賦值 undefined 6.定義變數的本質:在記憶體中開闢空間並且命名(變數名),將資料存入此空間(變數名所代表的空間) 7.變數的賦值是一種值的傳遞(變數是獨立的空間) 變數的定義 var a;定義一個變數,並且命名為a a=10;賦值 變數的初始化 變數的取值 console.log(a);在控制檯中輸出日誌 1.先定義一個變數,再初始化 var a;定義一個變數 變數初始化 a=20; 取出變數的值 console.log(a); 2.var a=10,b=30,c=10;定義變數的同時即初始化 console.log(a); console.log(b); console.log(c); 3.多變數定義 var a,b,c; a=10; b=20; c=30; 變數不可以重複定義 var a=20;在記憶體中開闢空間命名為a,並且將20存入a這塊空間中 var a=30; console.log(a); </script> </head> <body> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> JS是一門弱型別語言,在變數定義的時候,不需要指定資料型別 var a='hello world'; var b=123; console.log(a); console.log(b); var a=20; console.log(a); a=30;變數的重複賦值(覆蓋) console.log(a); a='hello world'; console.log(a); var a=10; var b=a;變數的賦值僅僅是一種值的傳遞 console.log(a); console.log(b); a=30; b=20; console.log(a);30 console.log(b);10 20 </script> </head> <body> </body> </html>
二.資料型別
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
資料型別:
(1)基本資料型別(原始資料型別)
數值型別(number) 數字 1,2,3,10,1.1,2.1,1.222,-10
字串型別(string) 由"" '' 字串內容會原樣輸出
布林型別(boolean) false(假) true(真)
undefined 變數定義但未初始化
null 空 引用型別
(2)引用型別
Object Array(陣列) Date(日期) Function (函式) RegExp(正則)
檢測變數資料型別
typeof 變數名;
注意:typeof表示式本身的結果是一個字串型別
"string" "number" "boolean" "undefined" "null"
var a=10;
console.log(a);
console.log(typeof a);number
var a='hello';
a='10';
a='3.14';
a="10+20";
console.log(a);
console.log(typeof a);string
var isBoy=false;
console.log(isBoy,typeof isBoy);
var a=10;
console.log(typeof a);
var b=typeof a;將a的資料型別儲存在變數b中
console.log(b);"number"
console.log(typeof b);先運算在輸出
console.log(typeof typeof a);string
變數的資料型別取決變數裡儲存的資料
var a=10;number
var b=20;
console.log(typeof a,typeof b);
a=true;boolean
console.log(typeof a);
a='hello';string
console.log(typeof a);
</script>
</head>
<body>
</body>
</html>
三.運算子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
運算子:
運算子根據運算元的個數可以分為:一元(一目)運算子、二元運算子、三元運算子
根據運算子的作用:
(1)算術運算子:
+ - * / %(取餘)
一元運算子:
自增:++
自減:--
注意:未賦值時,前置和後置 無區別
賦值時:
1.後置:先賦值,後運算
2.前置:先運算,後賦值
注意:+ 兩邊有一個為字串型別時,則執行拼接操作,結果為字串型別
(2)賦值運算子
= (賦值) += -= *= /= %= 先運算,再賦值
(3)比較運算子
運算結果為boolean型別
>= <= > < ==(等於) !=(不等於) ===(全等)
注意:
== 只比較數值
=== 不僅比較數值,還比較資料型別
(4)邏輯運算子
一般情況下,運算結果為布林型別
&&(邏輯與) : 並且
若運算子兩邊均為真(true),則結果為真(true),其它均為假
||(邏輯或) : 或者
運算子兩邊有一個為真,則為真;兩邊均為假,則為假
!(邏輯非) : 取反 一元
(5)條件運算子 三元運算子
?:
var a=10;
var b=20;
console.log(a+b);先運算、再輸出
十進位制、二進位制、八進位制、十六進位制
JavaScript小數運算有問題:精度損失
console.log(0.2*0.2);0.04000000000000001
var a=0.2*0.2;
var b=a.toFixed(2);保留小數點後兩位數
console.log(b);
科學計數法
var a1=0.000005;
var a11=5e-6;
var a2=300000000;
var a3=3e8;
console.log(a1);
console.log(a11);
console.log(a2);
console.log(a3);
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
先賦值,後運算
var a=10;
var b=a++;
var b=a--;
console.log(a);
console.log(b);
1. var a=5;
var b=3;
var c=a+b+(a++);5+3+5
console.log(a,b,c);
2. var a1=a++;
var c=(a++)+(a+b)+(b--);5+9+3
console.log(a,b,c);
3. var a=2;
var b=4;
var a1=a++;2
var b1=b--;4
var b2=b++;3
var c=(a++)+(b--)+(a+b)+(b++);2+4+6+3
console.log(a,b,c);a=3 b=4 c=15
先運算,後賦值
var a=5;
var c=++a;
var b=--a;
console.log(c);6
console.log(b);5
1. var a=3;
var b=5;
var c=(++a)+a+b;4+4+5
console.log(a,b,c);
2. var a=3;
a+=2; a=a+2
a-=2; a=a-2
a*=2;
console.log(a+=2);5
console.log(a*=2);10
console.log(a/=2);5
console.log(a%2);1
console.log(a);
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
var a=3;
var b=5;
同時成立則為true,有一項不成立則為false
1. var c=a>b&&a<b;false
var c1=a<b&&a<=b;true
var c2=a<b&&a>b;false
var c3=a>b&&a>=b;false
其中滿足一項則為true
2. var c=a>b||a<b;true
var c1=a<b||a<=b;true
var c2=a<b||a>b;true
var c3=a>b||a>=b;false
console.log(c,c1,c3);
式子c成立取第一項反之取第二項。
3. var a=10;
var b=5;
var c=a>b?100:50;
console.log(c);
</script>
</head>
<body>
</body>
</html>
四.運算子擴充套件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
1.算術運算子
數值型別
var a=10;
var b=5;
console.log(a+b);
字串
var a='hello';
var b=' 哈哈';
console.log(a+b);字串拼接
布林型別
var a=true;
var b=false;
不同型別之間進行算術運算
var a=10;
var b='hello';
var c='5';
var d=true;
var d1=false;
console.log(a+b);拼接操作
console.log(a+c);拼接
數字型字串與數值按照數值進行運算
console.log(a-c);按照數值運算
console.log(a*c);
console.log(a/c);
布林型別在參與數學運算時,true 1 false 0
console.log(a+d);11
console.log(a+d1);10
console.log(b+d);拼接操作
console.log(c+d);拼接
console.log(c-d);
2.比較運算子擴充套件
數值型別
console.log(3>5);
console.log(3==5);
字串型別
console.log('19'>'5');false 比較首位
console.log(3==3);
console.log('hello '=='hello');
var a=5;
var a1='hello';
var b='10';
var c='5';
console.log(a>b);按照數值比較
console.log(a==c);數值
console.log(a===c);數值和型別
3.邏輯運算子
若邏輯運算子兩邊有運算元不為布林型別,則運算結果不一定為布林型別
布林型別擴充套件:0,'',undefined ,null均為假,其他都為真
邏輯或:
1.若第一個運算元為真,則第二個運算元不執行(結果為第一個運算元)
2.若第一個運算元為假,則結果為第二個運算元
邏輯與:
1.若第一個運算元為假,則第二個運算元不執行
2.若第一個運算元為真,則結果為第二個運算元
1. console.log(true||false);
var a=5;
var b=4;
var c=a>=b||(a++)>b;
var c=a<=b||5;
var c=1||2;
var c=0||5;
console.log(c);
console.log(a,b,c);
2. var a=5;
var b=4;
var c=a>=b&&(a--)>b;
var c1=a<=b&&(a--)>b;
console.log(a,b,c);
console.log(a,c1);
console.log(a&&b);
</script>
</body>
</html>