如何使用變數
var age = 10, name = 'zs';
變數在記憶體中的儲存
簡單資料型別
number、string、boolean、undefined、null
number型別
十進位制var num = 9;
進行算數計算時,八進位制和十六進製制表示的數值最終都將被轉換成十進位制數值。
十六進製制
var num = 0xa;
數字序列範圍:0~9以及a~f
八進位制var num1 = 07; // 對應十進位制的7
var num2 = 019; // 對應十進位制的19
var num3 = 08; // 對應十進位制的8
數字序列範圍:0~7
如果字面值中的數值超出了範圍,那麼前導零將被忽略,後面的數值將被當作十進位制數值解析
浮點數的精度問題
浮點數var n = 5e-324; // 科學計數法 5乘以10的-324次方
浮點數值的最高精度是 17 位小數,但在進行算術計算時其精確度遠遠不如整數
var result = 0.1 + 0.2; // 結果不是 0.3,而是:0.30000000000000004
console.log(0.07 * 100);
不要判斷兩個浮點數是否相等
最小值:number.min_value,這個值為: 5e-324
最大值:number.max_value,這個值為: 1.7976931348623157e+308
無窮大:infinity
無窮小:-infinity
nan:not a number(特殊的非數字值)
nan 與任何值都不相等,包括他本身
isnan: is not a number(判斷是否為非數字值)
string型別
'程式猿','程式媛', "黑馬程式猿",'abc' "abc"
length屬性用來獲取字串的長度
var str = '黑馬程式猿 hello world';
console.log(str.length);
字串拼接使用 + 連線
console.log(11 + 11);
console.log('hello' + ' world');
console.log('100' + '100');
console.log('11' + 11);
console.log('male:' + true);
兩邊只要有乙個是字串,那麼+就是字串拼接功能
兩邊如果都是數字,那麼就是算術功能。
boolean型別
undefined和null
undefined表示乙個宣告了沒有賦值的變數,變數只宣告的時候值預設是undefined
null表示乙個空,變數的值如果想為null,必須手動設定
複雜資料型別
object
typeof
var age = 18;
console.log(typeof age); // 'number'
單行注釋 //多行注釋/* */轉換成字串型別
var num = 5;
console.log(num.tostring());
string()函式存在的意義:有些值沒有tostring(),這個時候可以使用string()。比如:undefined和null
num + "",當 + 兩邊乙個操作符是字串型別,乙個操作符是其它型別的時候,
會先把其它型別轉換成字串再進行字串拼接,返回字串
轉換成數值型別number()可以把任意值轉換成數值,如果要轉換的字串中有乙個不是數值的字元,返回nan
var num1 = parseint("12.3abc"); // 返回12,如果第乙個字元是數字會解析知道遇到非數字結束
var num2 = parseint("abc123"); // 返回nan,如果第乙個字元不是數字或者符號就返回nan
parsefloat()把字串轉換成浮點數
parsefloat()和parseint非常相似,不同之處在與
parsefloat會解析第乙個. 遇到第二個.或者非數字結束
如果解析的內容裡只有整數,解析成整數
var str = '500';
console.log(+str); // 取正
console.log(-str); // 取負
console.log(str - 0);
轉換成布林型別
0 ''(空字串) null undefined nan 會轉換成false 其它都會轉換成true
轉換為true 非空字串 非0數字 true 任何物件
轉換成false 空字串 0 false null undefined
// 結果是什麼?
var a = !!'123';
++ 自身加1
-- 自身減1
&& 與 兩個運算元同時為true,結果為true,否則都是false
|| 或 兩個運算元有乙個為true,結果為true,否則為false
! 非 取反
==與===的區別:==只進行值得比較,===型別和值同時相等,則相等
var result = '55' == 55; // true
var result = '55' === 55; // false 值相等,型別不相等
var result = 55 === 55; // true
ECMAScript 基礎注意點
1.在 ecmascript 中,變數可以存在兩種型別的值,即原始值和引用值 原始值 儲存在棧 stack 中的簡單資料段,也就是說,它們的值直接儲存在變數訪問的位置。引用值 儲存在堆 heap 中的物件,也就是說,儲存在變數處的值是乙個指標 point 指向儲存物件的記憶體處 2.為變數賦值時,e...
前端基礎 ECMAScript解構(拆包)
在es6中,可以使用解構從陣列和物件提取值並賦值給獨特的變數,即將陣列或物件中的值,拆成乙個乙個變數。解構 自動解析陣列或物件中的值,並賦值給指定的變數。將陣列中的值,取出並賦值給多個變數 var arr 3 4,5 var a,b,c arr console.log a,b,c 還可以忽略值 需要...
前端基礎 ECMAScript類和物件
es6中新增了對類的支援,引入了class關鍵字 es6中提供的類實際上只是js原型模式的包裝。現在提供class支援後,物件的建立 繼承更加直觀。class類中,可以包含 構造方法 例項方法 靜態方法。類的定義 class a 例項方法 say 靜態方法 靜態方法與例項方法 同名互不影響 stat...