在JavaScript中存在以下數據類型:
1.Number類型:JavaScript不分整數和浮點數,統一用Number表示
2.字符串類型:用''或""括起來的文本,如果文本中要用到'或"則需要轉義字符 \'代表'
3.布爾值:true和false,可以進行與或非運算(&&,||,!)
4.比較運算符:>,==,<,===
注意:javaScript允許不同數據類型做比較
==比較,先自動類型轉換再比較,很多時候會得到詭異的結果
===比較,不會自動類型轉換,如果數據類型不一致返回false,堅持使用===比較
NaN這個特殊的Number,用===時和其他所有值都不相等,和自己也是不相等的
唯一判斷NaN的方法是通過isNaN()函數,isNaN(NaN);
浮點數的相等比較:
1/3===(1-2/3);是錯誤的,因爲浮點數在運算過程中會產生誤差,
比較兩個浮點數是否相等只能計算他們之差的絕
對值,看是否小於某個閾值
Math.abs(1/3-(1-2/3))<0.0000001;true
5.null和undefined
null表示一個空的值,它和0以及''空字符串不同。
undefined表示值未定義
區分兩者的意義不大,大多數情況下應該用null,undefined僅僅在判斷函數參數是否傳遞的情況下有用
6.數組
JavaScript的數組可以包含任意數據類型[1,2,'haha',null,true];
另一種創建數組的方法通過Array()函數實現:new Array(1,2,3);
出於代碼可讀性考慮,建議直接使用[]
7.對象
JavaScript的對象是一組由鍵-值組成的無序集合,例如:
var person ={
name:'柴勁鬆';
age:20;
hasCar:true;
}
javaScript對象的鍵都是字符串類型,值可以是任意數據類型,上述person對象
一共定義了三個鍵值對,每個鍵又稱爲對象的屬性
獲取對象的屬性,用 對象變量.屬性名 的方式
person.name;
person.hasCar;
8.變量
變量名是大小寫英文,數字,美元符號,和_的組合,而且不能用數字開頭,不能爲JavaScript關鍵字
9.strict模式
JavaScript最初不強制要求用var申明變量,造成這個變量自動聲明爲全局變量,容易造成錯誤
使用var申明的變量則不是全局變量,他得範圍限制在該變量被申明的函數體內,同名變量在不同函數體中不衝突
所以ECMA在後續規範中強制通過var申明變量,未通過var申明的變量使用會報錯,啓用strict模式的方法:
在JavaScript代碼第一行寫上'use strict';支持strict模式的瀏覽器將開啓strict模式運行JavaScript
總結:
其中我覺得比較容易出錯的地方就是"=="和"===",所以希望大家注意。遇到判斷的時候用===進行判斷。