iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
自我挑戰組

I don't know JS yet系列 第 8

[ Day 8 ] I don't know JS yet - values

  • 分享至 

  • xImage
  •  

回想昨日份的學習,撰寫 JS 專案時,應把每一份 JS 檔案視作一個個專案,因為每份 JS 檔案之間彼此是合作關係,如果有其中一份檔案壞掉,那整個專案會不能繼續執行下去。

開始今日份的學習

Values

Values 之於 Program,就像魚之於海水,密不可分。Values 是 program 用來儲存資料最重要的東西。
JS 的 values 有分兩種:Primitive, Object

Primitive values

  • String
  • Number
  • Bool
  • Undefine
  • Null

String

JS 有三種方式來 delimit (surround, seperate, define) string

  • single quote: 'I use single quote to delimit the string.'
  • double quote: "I use double quote to delimit the string."
  • back-tick: `I use back-tick to delimit and interpolation a string ${interpolation}.`

一個專案應該統一使用 single quote 或者 double quote 來 delimit string,不要交錯使用,而 back-tick 是有 value 要插入字串時才需使用。

Object values

  • Array
  • Object

Array

Arrays are a special type of object that's comprised of an ordered and numerically indexed list of data

var names = ['Adele', 'Adam', 'Smith'];

names.length;
// 3

names[0];
// 'Adele'

names[1];
// 'Lewis'

值得關注的是,JS arrays 可以存「任何一種 value type」,就是包含所有上面說的字串、數字、物件等,都可以存進 arrays 裡。( 包含 Functions,Function is a sub-type of object )

Object

Objects are more general: an unordered, keyed collection of any various values. In other words, you access the element by a string location name (aka "key" or "property") rather than by its numeric position (as with arrays).

var me = {
    first: "Cheryl",
    last: "Chuang",
    age: 23
};

console.log(`My name is ${ me.first }.`);     // "Cheryl"
console.log(`My name is ${ me["first"] }.`);  // "Cheryl"

在上面的範例,me 是一個物件,而 first, last, age 就是在這個物件裡,存放 "Cheryl", "Chuang", 23 這些資訊 (or value collection) location 的名稱,access 這些資訊的方法有兩種,第一種用 dot,另外一個是用 square bracket (如上範例)。

Value Type Determination

typeof 會回傳該 values 的 built-in type,是 primitive,或者 object

typeof 23;                  // "number"
typeof "Cheryl";            // "string"
typeof true;                // "boolean"
typeof undefined;           // "undefined"
typeof null;                // "object" -- oops, bug!
typeof { "week": 5 };       // "object"
typeof [1,2,3];             // "object"
typeof function fn(){};     // "function"

null 的 built-in type 是 object,而 function 的 built-in type 是 function。

從一個 value type 轉到另外一個 value type 稱作 'coercion'。
Primitive values 和 object values 在 assign 或者 pass 的時候會有不一樣的行為,也就是常聽到的 “傳值 vs 傳參考 ”, "Values vs References"。

今天份的學習到這邊

[ 參考 ]


上一篇
[ Day 7 ] I don't know JS yet - treat each JS file as a program
下一篇
[ Day 9 ] I don't know JS yet - Declaring and Using Variables
系列文
I don't know JS yet30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言