js(二) ECMAScript基礎之資料型別

2021-10-02 12:17:41 字數 3301 閱讀 6256

如何使用變數

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...