摘要:常見的關鍵字有等等常見的保留字有等等本文可能會直接用到的有定義一個變量在瀏覽器控制臺或后臺終端輸出一個值在瀏覽器彈窗輸出一個值基本數據類型基本類型包括數值,字符串,,和布爾型。
標識符命名規(guī)則
對于變量名,鍵值對中的鍵名應滿足如下要求:
開頭必須是字母、下劃線(_)或美元符號($)
除了開頭以外的字符也可以是數字
不可以是關鍵字和保留字
最好不要和全局變量/函數同名,會把原有變量/函數覆蓋的風險
這里,關鍵字就是在 js 中有特殊意義的單詞,而保留字是為了以后使用預留的詞語。但不要求背它們,隨著學習的深入,自然就都記住了。
常見的關鍵字有:
break、delete、function、return、typeof、case、do、if、switch、var、catch、else、in、this、void、continue、false、instanceof、throw、while、debugger、finally、new、true、const、with、let、default、for、null、try、async 等等
常見的保留字有:
class、enum、export、extends、import 、super等等
本文可能會直接用到的有:
var: 定義一個變量
console.log(): 在瀏覽器控制臺或后臺終端輸出一個值
alert(): 在瀏覽器彈窗輸出一個值
基本數據類型Javascript 基本類型包括:數值,字符串,null,undefined 和布爾型。還有 ES6 中的 Symbol 類型,這篇博客暫時先不提 Symbol 類型。
比如:
var num = 1; //數值型 var str = "hello world"; //字符串,雙引號也可以 var flag = true; //布爾型,取值 true 或 false var obj = null; //空類型 var it = undefined; //undefined
這里簡單解釋一下需要注意問題:
數值類型是不區(qū)分整型與浮點型的;
數值類型默認都是以 double 浮點數形式儲存的;
數值類型范圍在 5e-324 至1.7976931348623157e+308,即 `Number.MIN_VALUE 至 Number.MAX_VALUE;
js 沒有字符類型,只有字符串類型;
null 表示正常的、意料之中的空值,而 undefined 表示以外的空值。對于只聲明未賦值的變量,默認值為 undefined;
數值類型有幾個特殊值:
Infinity: 正無窮
-Infinity:負無窮
NaN:非法數值(Not a Number),但他還是個數值(好矛盾)
復雜數據類型 基本數據類型對應的對象js 中其實除了基本類型以外其他類型的本質都是對象,就算是基本類型變量,除了 undefined 和 null 以外,都有其對應的對象類型。如下:
var num = new Number(2); var str = new String("hello"); var flag = new Boolean(true);
這里一定要清楚,其對象類型和基本類型不是一個東西,具體的看完類型轉換就一切都清楚了。
js中其他常見的對象當然,下面繼續(xù)說對象,js 常用的對象有:Array,Object,Date,RegExp等等。定義方法如下:
var arr = new Array(); //得到一個空數組 var arr2 = new Array(5); //得到一個長度為5的數組,初值為undefined var arr3 = new Array("b","a","c"); //得到一個長為3,對應值為"b","a","c" 的數組 var obj = new Object(); //得到一個空對象 var now = new Date(); //得到當前時間 var reg = RegExp("^[A-Za-z][wd]*$"); //得到一個正則表達式
對于數組、正則表達式和對象還有一種字面量的定義方法,這個方法和上面是完全等價的:
var arr = []; //得到一個空數組 var arr3 = ["b","a","c"]; //得到一個長為3,對應值為"b","a","c" 的數組 var obj = {}; //得到一個空對象 var reg = /^[A-Za-z][wd]*$/; //得到一個正則表達式數組和對象的訪問
這個部分直接舉例子:
數組:一些數據的集合,這里不要求數據必須是同樣類型的
var arr = [1, 2, 3, "a"]; //定義一個數組 arr[0]; //1 訪問數組的第1個元素,注意索引從0開始 arr[1]; //2 訪問數組的第2個元素 arr[3]; //"a" 訪問數組的第4個元素 arr[-1], arr[4], arr[1.3]; //undefined 訪問數組越界或索引不正確都返回 undefined
對象: 鍵值對的集合,鍵值對之間由逗號分開,鍵和值由冒號分開
var obj = { name: "Bob", age: 18, gender: "M" }; obj.name; //"Bob" 獲取 obj 對象的姓名 obj.age; //18 獲取 obj 對象的年齡 obj.gender; //"M" 獲取 obj 對象的性別
注意當鍵名中有符號也需要加引號。
其余的對象會在以后用到的時候再仔細講
基本運算和運算符運算符就像我們數學中的加減乘除,也像數學中的計算規(guī)定的先后順序,這里我直接給出所以運算符的運算順序和實例,必要的解釋在表格后面,沒有解釋到的屬于比較深奧的運算符,記住它的順序即可,功能后續(xù)再理解。
優(yōu)先級 | 運算符 | 結合性 | 舉例 | 說明 |
20 | 圓括號 | n/a | ( … ) | - |
19 | 成員訪問 | 從左到右 | obj.name | - |
需計算的成員訪問 | 從左到右 | obj["name"] | - | |
new (帶參數列表) | n/a | new Person() | - | |
18 | 函數調用 | 從左到右 | fun(args) | - |
new (無參數列表) | 從右到左 | new fun | - | |
17 | 后置遞增 | n/a | a++ | 相當于 a = a + 1; |
后置遞減 | n/a | a-- | 相當于 a = a - 1; | |
16 | 邏輯非 | 從右到左 | !a | - |
按位非 | 從右到左 | ~a | - | |
一元加法 | 從右到左 | +a | - | |
一元減法 | 從右到左 | -a | - | |
前置遞增 | 從右到左 | ++a | - | |
前置遞減 | 從右到左 | --a | - | |
typeof | 從右到左 | typeof 4 | 得到值的類型 "number" | |
void | 從右到左 | void(0) | 執(zhí)行表達式并返回 undefined | |
delete | 從右到左 | delete obj.age | 刪除對象屬性 | |
15 | 冪 | 從右到左 | 2**4 | 得16 |
14 | 乘法 | 從左到右 | 2 * 3 | 得 6 |
除法 | 從左到右 | 4 / 2 | 得 2 | |
取模 | 從左到右 | 4 % 3 | 得 1 | |
13 | 加法 | 從左到右 | 1 + 3 | 得 4 |
減法 | 從左到右 | 2 - 3 | 得 -1 | |
12 | 按位左移 | 從左到右 | 32 << 5 | 得 1024 |
按位右移 | 從左到右 | 32 >> 3 | 得 8 | |
無符號右移 | 從左到右 | -32 >>> 2 | 得 1073741816 | |
11 | 小于 | 從左到右 | -1 < 2 | 得 true |
小于等于 | 從左到右 | -1 <= 2 | 得 true | |
大于等于 | 從左到右 | 1 >= 2 | 得 false | |
大于 | 從左到右 | 1 > 2 | 得 false | |
in | 從左到右 | "name" in obj | - | |
instanceof | 從左到右 | li instanceof HTMLElement | - | |
10 | 等號 | 從左到右 | 5 == "5" | 得 true |
非等號 | 從左到右 | 5 != "5" | 得 false | |
全等號 | 從左到右 | 5 === "5" | 得 false | |
非全等號 | 從左到右 | 5 !== "5" | 得 true | |
9 | 按位與 | 從左到右 | 10 & 40 | 得 8 |
8 | 按位異或 | 從左到右 | 10 ^ 40 | 得 34 |
7 | 按位或 | 從左到右 | 10 | 40 | 得 42 |
6 | 邏輯與 | 從左到右 | 0 && 3 | 得 0,不得 false |
5 | 邏輯或 | 從左到右 | 0 || 3 | 得 3,不得 true |
4 | ?: | 從右到左 | 3 != 0 ? 1 : 2 | 得 1 |
3 | 賦值 | 從右到左 | a = 2 | - |
a += 2 | 相當于 a = a + 2 | |||
a -= 2 | 相當于 a = a - 2 | |||
a *= 2 | 相當于 a = a * 2 | |||
a /= 2 | 相當于 a = a / 2 | |||
a &= 2 | 相當于 a = a & 2 | |||
a |= 2 | 相當于 a = a | 2 | |||
a ^= 2 | 相當于 a = a ^ 2 | |||
a %= 2 | 相當于 a = a % 2 | |||
a <<= 2 | 相當于 a = a << 2 | |||
a >>= 2 | 相當于 a = a >> 2 | |||
a >>>= 2 | 相當于 a = a >>> 2 | |||
2 | yield | 從右到左 | yield returnValue; | - |
yield* | 從右到左 | yield* returnValue; | - | |
1 | 展開運算符 | n/a | arr1.push(...arr2) | - |
0 | 逗號 | 從左到右 | a=1, b=2 | 返回最后一個表達式的值 2 |
需要說明的是:
優(yōu)先級越高的優(yōu)先計算,同優(yōu)先級的從左到右依次計算;
a++ 與 ++a 的區(qū)別: 前者先返回值后自加,后者先自加再返回值(a-- 與 --a 同理);
涉及到位運算的部分不是十分重要,但以后的文章會細談;
== 和 === 的區(qū)別,前者比較是發(fā)生自動類型轉換,后者不發(fā)生自動類型轉換(!= 與 !== 同理);
對于 exp ? val1 : val2; 如果 exp 的結果為 true,整個表達式得 val1, 否則得 val2;
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97464.html
摘要:注意基本變量類型不是對象類型,只有基本包裝類型才是對象類型。至于顯示的原型,在里用屬性表示,這個是原型繼承的基礎知識,在這里就不在敘述了。 前言 如果你要開發(fā)一個復雜的產品,那么肯定少不了使用面向對象機制,當然也避不開 Javascript 里面的繼承,instanceof 運算符是原生 Javascript 語言中用來判斷實例繼承的操作符。所以我們有必要深入理解該運算符! inst...
摘要:前綴規(guī)范每個局部變量都需要有一個類型前綴,按照類型可以分為表示字符串。例如,表示以上未涉及到的其他對象,例如,表示全局變量,例如,是一種區(qū)分大小寫的語言。布爾值與字符串相加將布爾值強制轉換為字符串。 基本概念 javascript是一門解釋型的語言,瀏覽器充當解釋器。js執(zhí)行時,在同一個作用域內是先解釋再執(zhí)行。解釋的時候會編譯function和var這兩個關鍵詞定義的變量,編譯完成后從...
摘要:目錄導語包裝對象的理解三大包裝對象的知識點小結導語包裝對象是為了彌補基本數據類型的非對象特性而產生的,對于基本類型值而言,本來是不存在屬性和方法的,但是我們可以在使用字面量創(chuàng)建字符串時,調用例如的方法,那么其內在原理究竟是什么呢閱讀完本篇文 目錄 導語 1. 包裝對象的理解 2. 三大包裝對象的知識點 3. 小結 導語 包裝對象是為了彌補基本數據類型的非對象特性而產生的,對于基本類型...
摘要:來源編程精解中文第三版翻譯項目原文譯者飛龍協議自豪地采用谷歌翻譯部分參考了編程精解第版在機器的表面之下,程序在運轉。本章將會介紹程序當中的基本元素,包括簡單的值類型以及值運算符。示例中的乘法運算符優(yōu)先級高于加法。 來源:ApacheCN『JavaScript 編程精解 中文第三版』翻譯項目原文:Values, Types, and Operators 譯者:飛龍 協議:CC BY-NC...
摘要:中變量可能包含兩種不同的數據類型的值基本類型和引用類型。本文主要介紹基本數據類型及其特點。操作符在介紹基本類型值之前,先說下操作符,操作符會返回數據類型的字符串表示。所有未初始化的變量均會保存該值。 前言JavaScript中的變量為松散類型,所謂松散類型就是指當一個變量被申明出來就可以保存任意類型的值,就是不像SQL一樣申明某個鍵值為int就只能保存整型數值,申明varchar只能保...
閱讀 689·2023-04-25 19:53
閱讀 4262·2021-09-22 15:13
閱讀 2565·2019-08-30 10:56
閱讀 1320·2019-08-29 16:27
閱讀 2932·2019-08-29 14:00
閱讀 2407·2019-08-26 13:56
閱讀 426·2019-08-26 13:29
閱讀 1611·2019-08-26 11:31