2.4 嚴格檢查模式Strict
在 JavaScript 里,也是 有 “作用域” 這個說法的。
所以說,變量 也分 全局變量 和 局部變量。
當我們 直接 把 代碼 寫在 script 雙標簽里面的時候,我們 JS 會認為 這只是 一個 沒有名字的 函數!!所以 函數內部的變量 肯定 是 “局部” 的呀。
var 變量名 = 變量值(它的作用域是不確定的,如果在方法內部就是 局部的,如果在方法外部就是 全局的。)
變量名 = 變量值(是 用來 聲明全局變量的,也就是說 前面沒有任何的修飾詞 默認就是 全局變量的聲明,無論你在方法外還是方法內。)
這個時候,這里有 一個 提示,說 我們必須 用 let
或 const
來替換 這個 var。
而 let 也是我們說的 局部變量的聲明。也就是說 我們的 JS 比較推薦我們 使用 let 來做局部變量的聲明!
const 就是 常量的聲明。
那么有的人肯定會說,我不這樣 去寫,不也通過了嗎?當然通過了呀!這是因為 js 是很隨意的。其實你寫錯了,而且是個很常識 的錯誤,但是 JS 就不告訴你。
- 那怎么樣 才能讓 JS 提示我 一些 基本的常識性 錯誤呢 ??
答:必須在 JavaScript 的第一行,寫上 'use strict';
開啟嚴格檢查模式。
但是,它 只會 提示 錯誤。而不會 提示 一些 可忽略的問題。
比如說 var i = 2; 它就不會報錯(因為 var 屬于 自適應 作用域的)。
2.5 字符串類型詳解
- 正常字符串 我們使用 單引號。
- 注意轉義字符 \
- 雙引號 也是可以的。
’
\n
\t
\u4e2d Unicode 字符
\x41 AscII 字符
- `長字符串內容`(在代碼里 字符串可以很隨意了)
var msg = `hello
world 你好ya
你好`
你會發現 它是 一個 類似于 pre 的自動格式化 字符串!你在 代碼里 什么樣子,它基本上 就是 什么樣子。
- 模板字符串(EL 表達式)
然后 它還支持 EL 表達式,就是 ${變量名} 就直接 可以把 該變量的值 拿過來 用。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>'use strict';console.log('a');console.log('a');let age = 19;let name = "muquanyu";var msg = `helloworld 你好ya ${name}你好${age}`;console.log(msg);</script>
</head>
<body></body>
</html>
6. 取字符串長度
var str = “student”;
str.length;
- 字符串是不可變的
因為你定義的字符串,里面存儲的值,是從常量區里面取的。所以不可變。變了就錯了!!
- 大小寫轉換
str.toUpperCase(); // 轉換為 大寫
str.toLowerCase(); // 轉換為 小寫
- 獲取指定字符子串的開頭位置
str.indexOf(“字符子串”);
- 獲取 指定開頭和結尾的字符子串
str.substring(開頭位置,結束的位置);