1.變量的數據
變量用來存儲值的所在處,有名字和數據類型。變量的數據類型決定將如何代表這些值的位存儲到計算機內存中。JavaScript是一種弱類型或者說是動態語言。不用提前聲明變量的類型,在程序運行中變量會被自動確定。
var age;//不確定類型
age = 10;//確定位整型
而java\C中是
int age = 10;//直接確定為整形
python中可以 不用聲明
age = 10;
JavaScript擁有動態類型,同時也意味着相同的變量可以用作不同的類型
var x = 6;//x為數字
var x = "Bill"; //x為字符串
2.數據類型的分類
JS的數據類型分:簡單數據類型(Number,String,Boolean,Underfined,Null)和復雜數據類型(object)
2.1簡單數據類型
2.1.1 Number:數字型包括整形值和浮點型值,默認值是0
(1)進制
var num = 10; //num數字型
var PI = 3.14;//PI數字型
//八進制:0~7程序里數字前加0表示8進制數字
var num1 = 010;
console.log(num1);//打印輸出的是8
var num2 = 012;
console.log(num2);//打印輸出10
//十六進制:0~9 a~f程序里數字前加0x表示16進制數字
var num3 = 0x9;
console.log(num3);//打印輸出的是9
var num4 = 0x12;
console.log(num4);//打印輸出的是18
(2)數字型范圍
JavaScript中數值的最大值(Number.Max_VALUE)和最小值(Number.MIN_VALUE)
Number.Max_VALUE: 1.7976931348623157e+308
Number.MIN_VALUE: 5e-324
Inifit:無窮大,大於任何數值
-Infint:無窮小,小於任何數值
NaN: not a number,代表一個非數值(例如字符串與某個整數進行加減運算)
(3)isNaN()
用於判斷一個變量是否為非數字類型,如果是數值返回false,如果是非數字返回true
//isNaN()用這個方法用來判斷非數字,並且返回一個值,如果是數字則返回false否則返回true
console.log(isNaN(12));//false
console.log(isNaN('pink 老師'))//true
2.1.2 String:字符串類型,默認值是空字符串""
(1)引號可以是單引號也可以是雙引號,推薦在JS中用單引號(html中用雙引號)
(2)轉義字符
\n: 換行
\: 斜杠
': 單引號'
": 雙引號"
\t: tab縮進
\b: 空格(b是blank的意思)
(3)字符串長度及拼接
length屬性用於獲取字符串的長度:
//檢測字符串長度length
var str = 'my name is andy';
console.log(str.length);
利用'+'進行字符串的拼接,口訣:數值相加,字符相連:
console.log('沙漠'+'駱駝');//沙漠駱駝
//字符型和其他類型進行拼接最后的結果還是字符串型的
console.log('pink老師'+18);//pink老師18
console.log(18+'pink老師');//18pink老師
console.log(true+'pink');//truepink
console.log('12'+12);//1212
//但是以下就不是拼接
console.log(12+12);//24
字符串拼接加強:
var age = 18;
console.log('pink老師'+age+'歲');
案例:
//彈出一個輸入框,需要用戶輸入年齡,之后彈出一個警示框顯示“您今年xx歲啦”
age = prompt('請輸入年齡');
alert('您今年歲'+age+'啦');
2.1.3 Boolean:布爾值類型如true,false,默認值false
var flag = true;
var flag1 = false;
console.log(flag+1);//2
console.log(flag1+1);//1
2.1.4 Undefined
var a;聲明了變量但是沒有給值,此時a=underfined,默認值underfined
//如果一個變量聲明但是未賦值 就是underfined未定義數據類型
var str;
console.log(str);//undefined
var variable = undefined;
console.log(variable);//undefined
console.log(variable+'pink');//undefinedpink 字符串類型
console.log(variable+1);//NaN undefined和數字相加最后的結果是NaN
console.log(variable+true);//NaN
2.1.5 Null:
var a=null;聲明了變量a為空值
//null
var space = null;
console.log(space);
console.log(space+'pink');//nullpink
console.log(space+1);//1
3.獲取變量的數據類型
3.1 typeof
typeof可以用來獲取檢測變量的數據類型
var num = 10;
console.log(typeof num);//number
var str = 'pink';
console.log(typeof str);//string
var flag = true;
console.log(typeof flag);//boolean
var vari = undefined;
console.log(typeof vari);//undefined
var timer = null;
console.log(typeof timer);//object
利用typeof驗證prompt取過來的值的類型
age = prompt('請輸入您的年齡');
console.log(age);//18
console.log(typeof age);//string
3.2 console
除了可以用typeof來檢測變量屬於哪一種類型還可以通過瀏覽器控制台console的顏色來判斷屬於哪一種數據類型
console.log(18);//數字型 純藍色
console.log('18');//字符型 黑色
console.log(true);//布爾型 墨藍色
console.log(undefined);//淺灰色
console.log(null);//淺灰色
3.3 字面量
字面量是在源代碼中一個固定值的表示方法,通俗來說就是字面量表示如何表達這個值
數字字面量: 8,9,10
字符串字面量: '黑馬程序員','大前端'
布爾字面量:true,false
4. 數據類型轉換
4.1 什么是數據類型轉換
使用表單(input)、prompt獲取過來的數據默認是字符串類型,此時就不能直接簡單地進行加法運算,而需要轉換變量的數據類型,通俗來說就是把一種數據類型變量轉化成另一種數據類型。
常用的3種方式的轉換:
- 轉換為字符串類型
- 轉換為數字型
- 轉換為布爾型
4.1.1 轉換為字符串類型
var num = 10;
//1. 把數字型轉換成字符串 格式:變量.toString()
var str = num.toString();
console.log(str);
console.log(typeof str);
//2. 我們利用String() 格式:String(變量)
console.log(String(num));
//3. 利用+拼接字符串的方法實現轉換效果 隱式轉換
console.log(num+'');
4.1.2 轉換為數字類型(重點)
(1)方法1:parseInt(變量)
var age = prompt('請輸入您的年齡');
//1. parseInt(變量) 可以把字符型的轉化為數字型 得到的是整數(直接把小數點后面的數字抹掉)
console.log(parseInt(age));
console.log(parseInt('18.9')); //18
console.log(parseInt('120px')); //120 會直接將后面的字母去掉
console.log(parseInt('rem120px'));//NaN
(2)方法2:parseFloat(變量)
//2. parseFloat(變量)可以把字符型轉化為數字型 得到的是小數 浮點數
console.log(parseFloat('3.14'));
console.log(parseFloat('120px')); //120 會直接將后面的字母去掉
console.log(parseFloat('rem120px'));//NaN
(3)方法3:Number(變量)
//3. 利用Number(變量)
var str = '123';
console.log(Number(str));
console.log(Number('12'));
(4) 利用了算數運算-*/隱式轉換
//4. 利用了算數運算-*/隱式轉換
console.log('12'-0);//12 若中間是加號則'120'
console.log('123'-'120');//3 若是加號則是'123120'
console.log('123'*1);//'123'
console.log('123'/1);//'123'
(5) 計算年齡案例
//在頁面中彈出一個輸入框,我們輸入出生年份后,能計算出我們的年齡
var year = prompt('請輸入您的出生年份');
var age = 2019 - year;//year這里是字符串類型
alert('您的年齡是'+age+'歲');
(6) 簡單計算器
//彈出輸入框用戶輸入第一個值后,繼續彈出第二個輸入框並輸入第二個值,最后通過彈出窗口顯示出兩次輸入值相加的結果
var num1 = prompt('請輸入第一個值');
var num2 = prompt('請輸入第二個值');
result = parseFloat(num1)+parseFloat(num2);
alert('計算結果是'+result);
4.1.3 轉換為布爾型
- 代表空的、否定的值都會被轉化為false, 如:''、0、NaN、null、underfined
- 其余值都會被轉化為true
5.解釋型語言和編譯型語言
5.1解釋性語言和編譯性語言的特點
計算機不能直接理解任何除了機器語言以外的語言,所以必須要把程序員所寫的程序語言翻譯成機器語言才能執行程序。程序語言被翻譯成機器語言的工具被稱為翻譯器。
-
翻譯器翻譯的方式有兩種,一種是編譯另一種是解釋,兩者之間的區別在於翻譯的時間點不同。
-
編譯器是在代碼執行之前進行編譯,生成中間代碼文件。Java就是編譯型的語言。
-
解釋器就是在運行時進行及時解釋,並立即執行,JS就是典型的解釋型語言:解釋一行,執行一行。(當編譯器以解釋方式運行的時候,也成為解釋器)
5.2標識(zhi第4聲)符、關鍵字、保留字
- 標識符:指開發人員為變量、屬性、函數、參數取的名字。標識符不能是關鍵字或保留字。
- 關鍵字:是指JS本身已經使用了的字,不可再用它充當變量名、方法名。包括:break case catch continue default delete do else finally for function if in instanceof new return switch this throw try typeof var void while with等。
- 保留字:實際上就是預留的關鍵字,意思是現在雖然不是關鍵字,但是未來可能會成為關鍵字,同樣不能使用變量名和方法名。包括: boolean byte char class const debugger double enum export extends fimal float goto implements import int interface long mative package private protected public short static super synchronized throws transient volatile等。
6.課后作業
彈出對話框輸入姓名、年齡、性別、並打印用戶信息
//以此彈出對話框輸入姓名、年齡、性別、並打印用戶信息
var myName = prompt('請輸入姓名');
console.log(myName);
var age = prompt('請輸入年齡');
console.log(age);
var sex = prompt('請輸入性別');
console.log(sex);
var info = '您的姓名是:'+myName+'\n'+'您的年齡是:'+age+'\n'+'您的性別是:'+sex+'\n';
alert(info);