ES6學習筆記(一)【變數,字串】
簡介
JavaScript 的型別分為兩種:原始資料型別(Primitive data types)和物件型別(Object types)。
變數則是他們的載體
在 ES6 以前,宣告一個變數只有兩種方式 —— var
和 function
ES6 新增四種宣告變數指令 let
, const
, import
和 class
,這裡只介紹前兩種,後兩種將在後面章節中說明
注意:本書只討論思路,不探討細節,如想了解關於ES6變數的全部知識點,請Google查閱相關文件。
正文
let
,const
命令的用法類似於var
,但是所宣告的變數,只在宣告所在的塊級作用域內有效。
{
let a = 1
const b = 2
var c = 3
}
a // ReferenceError: a is not defined.
b // ReferenceError: b is not defined.
c // 3
在ES6以前,由於存在變數提升,var
定義的變數可以在宣告之前就呼叫而不報錯,而let
,const
必須先宣告後使用
並且let
不允許重複宣告,const
一旦宣告,值就不能改變。
let a = 1
let a = 2
// Uncaught SyntaxError: Identifier 'a' has already been declared
const YEAR = 2017
YEAR = 2018
// TypeError: Assignment to constant variable.
思考
這部分內容希望你都可以手動敲一遍,獨立思考
for (var i = 0; i < 10; i++) {}
console.log(i)
把上面for迴圈中的var
換成let
會有什麼不同?為什麼會這樣?
const foo = {}
// 為 foo 新增一個屬性,會成功嗎?
foo.prop = 123
// 將 foo 指向另一個物件,會成功嗎?
foo = {}
如何解釋上面的現象呢?
知道什麼是變數提升嗎?不知道的話,不如Google搜尋一下看看
字串
簡介
ES6 字串相關的知識點最重要的是模版字串,然後是一些不常用的新增API
ES6 還加強了對 Unicode 編碼的支援,但是這幾乎在日常工作中用不到,這裡不做說明
正文
在ES6以前,字串用單引號或者雙引號包裹,這種字串最大的缺點是不能換行,書寫時換行會報錯
let str = "aaa
aaa"
// Uncaught SyntaxError: Invalid or unexpected token
在ES6中,新增了一種字串表示方式,用反引號 ` (鍵盤上數字1左側的按鍵)包裹,允許插入變數或簡單的JavaScript表示式,也允許換行書寫
let str =`aaa
bbb
ccc`
let x = 1;
let y = 2;
// $後面的花括號裡的字串會被js解析器認為是JavaScript語句
`${x} + ${y} = ${x + y}`
// "1 + 2 = 3"
`${x} + ${y * 2} = ${x + y * 2}`
// "1 + 4 = 5"
let obj = {x: 1, y: 2};
`${obj.x + obj.y}`
// 3
ES6為字串新增了遍歷器介面(遍歷器介面會在後面章節詳細介紹),使字串可以被for...of
迴圈遍歷。
for (let x of 'foo') {
console.log(x)
}
// "f"
// "o"
// "o"
ES6對字串的擴充套件功能不止遠這些,但是99%的時候我們用到的只有這些
思考
這部分內容希望你都可以手動敲一遍,獨立思考
在ES6以前我們如果想換行書寫字串應該怎麼做?
`${if(true){console.log(1)}}`
// 這樣寫可行嗎?
如果想在模版字串內執行判斷語句應該怎麼做?
相關文章
- ES6學習筆記二(變數結構賦值)筆記變數賦值
- ES6 學習筆記一筆記
- Python學習筆記 - 字串,數字Python筆記字串
- Python學習筆記 - 變數Python筆記變數
- Tensorflow學習筆記: 變數及共享變數筆記變數
- 字串學習筆記字串筆記
- javascript學習筆記,二、變數JavaScript筆記變數
- ES6學習筆記4--字串的擴充套件筆記字串套件
- es6學習筆記筆記
- ES6 學習筆記筆記
- ES6 學習筆記筆記
- 字串家族 學習筆記字串筆記
- 【學習筆記】字串匹配筆記字串匹配
- [go 學習筆記] 二、變數、常量Go筆記變數
- ES6學習筆記(二)【數值,陣列】筆記陣列
- ES6學習筆記(一)————————————–let和const筆記
- ES6學習筆記一(let和const)筆記
- 高等數學學習筆記(一)筆記
- python學習:變數與字串Python變數字串
- ES6的學習筆記筆記
- ES6 學習筆記二筆記
- ES6 學習筆記三筆記
- ES6 學習筆記四筆記
- KMP字串匹配學習筆記KMP字串匹配筆記
- Python 學習筆記-2-1-變數Python筆記變數
- Nginx變數詳解(學習筆記十九)Nginx變數筆記
- C語言學習筆記之變數C語言筆記變數
- ES6學習筆記--es6簡介筆記
- ES6學習筆記(七)【class】筆記
- ES6學習筆記(八)【class】筆記
- ES6學習筆記(九)【class】筆記
- 前端學習筆記之ES6~~~前端筆記
- ES6學習筆記之Function筆記Function
- 【Python學習】學習筆記 14-15 字串Python筆記字串
- Qt學習筆記(五)QString 字串QT筆記字串
- C/C++學習筆記:字串C++筆記字串
- 【學習筆記】數學筆記
- ES6學習-字串模板字串