iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0
自我挑戰組

開始入坑網頁吧!系列 第 4

JavaScript型別、物件與純值

JavaScript型別

前面有說過JavaScript是動態型別,也就是說在執行時,變數會依照賦予的值來決定他的型別,可以不斷改變。
例如JavaScript的:

var ab='hello' //string
ab=12 //number

若是Java等靜態型別的語言,會先定義變數的型別,而且賦予一個型別另一個型別的值可能導致錯誤:
例如java的:

int a="你好" //出現型別的錯誤

**JavaScript 也是弱型別語言,

弱型別容忍隱性的型別轉換,但是怎麼轉換是它自己決定。

想看更多可以點擊最下面參考連結的第一個!


JavaScript物件

簡而言之就是一組組的鍵與值的配對,值可以為任意資料型別,
而這些值又可以是另一個「鍵/值」的組合。也就是說一個物件可以連結另一個物件
如圖(取自克服JS的奇怪部分)
https://ithelp.ithome.com.tw/upload/images/20210918/201354142a3HgogfXD.png
物件可以有屬性與方法。

有兩種宣告形式:
1.宣告式(declarative)或字面形式(literal),也是物件實體語法:
const person = { name: 'Ivy' };

2.建構形式(constructed form)//比較少用
const person = new Object(); person.name = 'Ivy';

而function, array等的屬於物件型別


JavaScript純值(原始型別)

JavaScript的六種原始型別,都是純值,沒有屬性。

1.undified:

表示還不存在,直到你給這個變數初始值
JavaScript 給所有變數的初始值,
但我們不應該主動賦予變數undified

2.null:

也是不存在的意思,但是我們可以設變數為null,已表示這個變數沒有值

3.boolean:

有true, false兩種

4.number:

JS只有一種數值型態,Numeber,他是浮點數,永遠有小數在後面,跟其他程式語言不同,例如java還有分整數型態與浮點數型態等,雖然我們也可以使用整數,但JS只有number型態。

5.String(字串):

由一連串字符組成,外面包著單引號或雙引號。
EX:'hello!'

6.Symbol(字符):

Symbols 是ES6引入了一個新的數據類型,
保證每個創建的Symbol都是獨一無二的值。
創建方法如下:

let sym1 = Symbol()
let sym2 = Symbol('Ivy')
let sym3 = Symbol('Ivy')

判斷型別

我們可以用typeof這個方法去檢查null以外的型別,為甚麼是null以外呢?

typeof null
//'object'
typeof undefined
//'undefined'

這是一個小bug,null 應該是 null啊!

參考資料:
六角學院 JS 核心筆記 (十二)【運算子、型別與文法】- 動態型別和弱型別
JS 中的 Symbol 是什么
你懂 JavaScript 嗎?#17 物件(Object)


上一篇
JavaScript 語法解析器&執行環境&詞彙環境 筆記
下一篇
JavaScript 運算子
系列文
開始入坑網頁吧!30

尚未有邦友留言

立即登入留言