成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Javascript數(shù)據(jù)類型與基本運(yùn)算

jimhs / 1371人閱讀

摘要:常見的關(guān)鍵字有等等常見的保留字有等等本文可能會(huì)直接用到的有定義一個(gè)變量在瀏覽器控制臺(tái)或后臺(tái)終端輸出一個(gè)值在瀏覽器彈窗輸出一個(gè)值基本數(shù)據(jù)類型基本類型包括數(shù)值,字符串,,和布爾型。

標(biāo)識(shí)符命名規(guī)則

對(duì)于變量名,鍵值對(duì)中的鍵名應(yīng)滿足如下要求:

開頭必須是字母、下劃線(_)或美元符號(hào)($)

除了開頭以外的字符也可以是數(shù)字

不可以是關(guān)鍵字和保留字

最好不要和全局變量/函數(shù)同名,會(huì)把原有變量/函數(shù)覆蓋的風(fēng)險(xiǎn)

這里,關(guān)鍵字就是在 js 中有特殊意義的單詞,而保留字是為了以后使用預(yù)留的詞語。但不要求背它們,隨著學(xué)習(xí)的深入,自然就都記住了。

常見的關(guān)鍵字有:

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等等

本文可能會(huì)直接用到的有:

var: 定義一個(gè)變量

console.log(): 在瀏覽器控制臺(tái)或后臺(tái)終端輸出一個(gè)值

alert(): 在瀏覽器彈窗輸出一個(gè)值

基本數(shù)據(jù)類型

Javascript 基本類型包括:數(shù)值,字符串,null,undefined 和布爾型。還有 ES6 中的 Symbol 類型,這篇博客暫時(shí)先不提 Symbol 類型。

比如:

var num = 1;    //數(shù)值型
var str = "hello world";   //字符串,雙引號(hào)也可以
var flag = true;   //布爾型,取值 true 或 false
var obj = null;    //空類型
var it = undefined;   //undefined

這里簡(jiǎn)單解釋一下需要注意問題:

數(shù)值類型是不區(qū)分整型與浮點(diǎn)型的;

數(shù)值類型默認(rèn)都是以 double 浮點(diǎn)數(shù)形式儲(chǔ)存的;

數(shù)值類型范圍在 5e-324 至1.7976931348623157e+308,即 `Number.MIN_VALUE 至 Number.MAX_VALUE;

js 沒有字符類型,只有字符串類型;

null 表示正常的、意料之中的空值,而 undefined 表示以外的空值。對(duì)于只聲明未賦值的變量,默認(rèn)值為 undefined;

數(shù)值類型有幾個(gè)特殊值:

Infinity: 正無窮

-Infinity:負(fù)無窮

NaN:非法數(shù)值(Not a Number),但他還是個(gè)數(shù)值(好矛盾)

復(fù)雜數(shù)據(jù)類型 基本數(shù)據(jù)類型對(duì)應(yīng)的對(duì)象

js 中其實(shí)除了基本類型以外其他類型的本質(zhì)都是對(duì)象,就算是基本類型變量,除了 undefined 和 null 以外,都有其對(duì)應(yīng)的對(duì)象類型。如下:

var num = new Number(2);
var str = new String("hello");
var flag = new Boolean(true);

這里一定要清楚,其對(duì)象類型和基本類型不是一個(gè)東西,具體的看完類型轉(zhuǎn)換就一切都清楚了。

js中其他常見的對(duì)象

當(dāng)然,下面繼續(xù)說對(duì)象,js 常用的對(duì)象有:Array,Object,Date,RegExp等等。定義方法如下:

var arr = new Array();   //得到一個(gè)空數(shù)組
var arr2 = new Array(5);   //得到一個(gè)長(zhǎng)度為5的數(shù)組,初值為undefined
var arr3 = new Array("b","a","c");    //得到一個(gè)長(zhǎng)為3,對(duì)應(yīng)值為"b","a","c" 的數(shù)組
var obj = new Object();   //得到一個(gè)空對(duì)象
var now = new Date();    //得到當(dāng)前時(shí)間
var reg = RegExp("^[A-Za-z][wd]*$");   //得到一個(gè)正則表達(dá)式

對(duì)于數(shù)組、正則表達(dá)式和對(duì)象還有一種字面量的定義方法,這個(gè)方法和上面是完全等價(jià)的:

var arr = [];   //得到一個(gè)空數(shù)組
var arr3 = ["b","a","c"];    //得到一個(gè)長(zhǎng)為3,對(duì)應(yīng)值為"b","a","c" 的數(shù)組
var obj = {};   //得到一個(gè)空對(duì)象
var reg = /^[A-Za-z][wd]*$/;  //得到一個(gè)正則表達(dá)式
數(shù)組和對(duì)象的訪問

這個(gè)部分直接舉例子:

數(shù)組:一些數(shù)據(jù)的集合,這里不要求數(shù)據(jù)必須是同樣類型的

var arr = [1, 2, 3, "a"];    //定義一個(gè)數(shù)組
arr[0];     //1     訪問數(shù)組的第1個(gè)元素,注意索引從0開始
arr[1];     //2     訪問數(shù)組的第2個(gè)元素
arr[3];     //"a"    訪問數(shù)組的第4個(gè)元素
arr[-1],  arr[4],  arr[1.3];    //undefined   訪問數(shù)組越界或索引不正確都返回 undefined

對(duì)象: 鍵值對(duì)的集合,鍵值對(duì)之間由逗號(hào)分開,鍵和值由冒號(hào)分開

var obj = {
    name: "Bob",
    age: 18,
    gender: "M"
};
obj.name;    //"Bob"  獲取 obj 對(duì)象的姓名
obj.age;    //18  獲取 obj 對(duì)象的年齡
obj.gender;    //"M"  獲取 obj 對(duì)象的性別

注意當(dāng)鍵名中有符號(hào)也需要加引號(hào)。

其余的對(duì)象會(huì)在以后用到的時(shí)候再仔細(xì)講

基本運(yùn)算和運(yùn)算符

運(yùn)算符就像我們數(shù)學(xué)中的加減乘除,也像數(shù)學(xué)中的計(jì)算規(guī)定的先后順序,這里我直接給出所以運(yùn)算符的運(yùn)算順序和實(shí)例,必要的解釋在表格后面,沒有解釋到的屬于比較深?yuàn)W的運(yùn)算符,記住它的順序即可,功能后續(xù)再理解。

優(yōu)先級(jí) 運(yùn)算符 結(jié)合性 舉例 說明
20 圓括號(hào) n/a ( … ) -
19 成員訪問 從左到右 obj.name -
需計(jì)算的成員訪問 從左到右 obj["name"] -
new (帶參數(shù)列表) n/a new Person() -
18 函數(shù)調(diào)用 從左到右 fun(args) -
new (無參數(shù)列表) 從右到左 new fun -
17 后置遞增 n/a a++ 相當(dāng)于 a = a + 1;
后置遞減 n/a a-- 相當(dāng)于 a = a - 1;
16 邏輯非 從右到左 !a -
按位非 從右到左 ~a -
一元加法 從右到左 +a -
一元減法 從右到左 -a -
前置遞增 從右到左 ++a -
前置遞減 從右到左 --a -
typeof 從右到左 typeof 4 得到值的類型 "number"
void 從右到左 void(0) 執(zhí)行表達(dá)式并返回 undefined
delete 從右到左 delete obj.age 刪除對(duì)象屬性
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
無符號(hào)右移 從左到右 -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 等號(hào) 從左到右 5 == "5" 得 true
非等號(hào) 從左到右 5 != "5" 得 false
全等號(hào) 從左到右 5 === "5" 得 false
非全等號(hào) 從左到右 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 相當(dāng)于 a = a + 2
a -= 2 相當(dāng)于 a = a - 2
a *= 2 相當(dāng)于 a = a * 2
a /= 2 相當(dāng)于 a = a / 2
a &= 2 相當(dāng)于 a = a & 2
a |= 2 相當(dāng)于 a = a | 2
a ^= 2 相當(dāng)于 a = a ^ 2
a %= 2 相當(dāng)于 a = a % 2
a <<= 2 相當(dāng)于 a = a << 2
a >>= 2 相當(dāng)于 a = a >> 2
a >>>= 2 相當(dāng)于 a = a >>> 2
2 yield 從右到左 yield returnValue; -
yield* 從右到左 yield* returnValue; -
1 展開運(yùn)算符 n/a arr1.push(...arr2) -
0 逗號(hào) 從左到右 a=1, b=2 返回最后一個(gè)表達(dá)式的值 2

需要說明的是:

優(yōu)先級(jí)越高的優(yōu)先計(jì)算,同優(yōu)先級(jí)的從左到右依次計(jì)算;

a++ 與 ++a 的區(qū)別: 前者先返回值后自加,后者先自加再返回值(a-- 與 --a 同理);

涉及到位運(yùn)算的部分不是十分重要,但以后的文章會(huì)細(xì)談;

== 和 === 的區(qū)別,前者比較是發(fā)生自動(dòng)類型轉(zhuǎn)換,后者不發(fā)生自動(dòng)類型轉(zhuǎn)換(!= 與 !== 同理);

對(duì)于 exp ? val1 : val2; 如果 exp 的結(jié)果為 true,整個(gè)表達(dá)式得 val1, 否則得 val2;

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/97464.html

相關(guān)文章

  • JavaScript instanceof運(yùn)算符深入分析

    摘要:注意基本變量類型不是對(duì)象類型,只有基本包裝類型才是對(duì)象類型。至于顯示的原型,在里用屬性表示,這個(gè)是原型繼承的基礎(chǔ)知識(shí),在這里就不在敘述了。 前言 如果你要開發(fā)一個(gè)復(fù)雜的產(chǎn)品,那么肯定少不了使用面向?qū)ο髾C(jī)制,當(dāng)然也避不開 Javascript 里面的繼承,instanceof 運(yùn)算符是原生 Javascript 語言中用來判斷實(shí)例繼承的操作符。所以我們有必要深入理解該運(yùn)算符! inst...

    zhangyucha0 評(píng)論0 收藏0
  • JavaScript學(xué)習(xí)總結(jié)(一)基礎(chǔ)部分

    摘要:前綴規(guī)范每個(gè)局部變量都需要有一個(gè)類型前綴,按照類型可以分為表示字符串。例如,表示以上未涉及到的其他對(duì)象,例如,表示全局變量,例如,是一種區(qū)分大小寫的語言。布爾值與字符串相加將布爾值強(qiáng)制轉(zhuǎn)換為字符串。 基本概念 javascript是一門解釋型的語言,瀏覽器充當(dāng)解釋器。js執(zhí)行時(shí),在同一個(gè)作用域內(nèi)是先解釋再執(zhí)行。解釋的時(shí)候會(huì)編譯function和var這兩個(gè)關(guān)鍵詞定義的變量,編譯完成后從...

    AlanKeene 評(píng)論0 收藏0
  • JavaScript標(biāo)準(zhǔn)庫系列——三大包裝對(duì)象(四)

    摘要:目錄導(dǎo)語包裝對(duì)象的理解三大包裝對(duì)象的知識(shí)點(diǎn)小結(jié)導(dǎo)語包裝對(duì)象是為了彌補(bǔ)基本數(shù)據(jù)類型的非對(duì)象特性而產(chǎn)生的,對(duì)于基本類型值而言,本來是不存在屬性和方法的,但是我們可以在使用字面量創(chuàng)建字符串時(shí),調(diào)用例如的方法,那么其內(nèi)在原理究竟是什么呢閱讀完本篇文 目錄 導(dǎo)語 1. 包裝對(duì)象的理解 2. 三大包裝對(duì)象的知識(shí)點(diǎn) 3. 小結(jié) 導(dǎo)語 包裝對(duì)象是為了彌補(bǔ)基本數(shù)據(jù)類型的非對(duì)象特性而產(chǎn)生的,對(duì)于基本類型...

    sean 評(píng)論0 收藏0
  • JavaScript 編程精解 中文第三版 一、值,類型運(yùn)算

    摘要:來源編程精解中文第三版翻譯項(xiàng)目原文譯者飛龍協(xié)議自豪地采用谷歌翻譯部分參考了編程精解第版在機(jī)器的表面之下,程序在運(yùn)轉(zhuǎn)。本章將會(huì)介紹程序當(dāng)中的基本元素,包括簡(jiǎn)單的值類型以及值運(yùn)算符。示例中的乘法運(yùn)算符優(yōu)先級(jí)高于加法。 來源:ApacheCN『JavaScript 編程精解 中文第三版』翻譯項(xiàng)目原文:Values, Types, and Operators 譯者:飛龍 協(xié)議:CC BY-NC...

    wh469012917 評(píng)論0 收藏0
  • JavaScript--變量基本數(shù)據(jù)類型

    摘要:中變量可能包含兩種不同的數(shù)據(jù)類型的值基本類型和引用類型。本文主要介紹基本數(shù)據(jù)類型及其特點(diǎn)。操作符在介紹基本類型值之前,先說下操作符,操作符會(huì)返回?cái)?shù)據(jù)類型的字符串表示。所有未初始化的變量均會(huì)保存該值。 前言JavaScript中的變量為松散類型,所謂松散類型就是指當(dāng)一個(gè)變量被申明出來就可以保存任意類型的值,就是不像SQL一樣申明某個(gè)鍵值為int就只能保存整型數(shù)值,申明varchar只能保...

    XanaHopper 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

jimhs

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<