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

資訊專欄INFORMATION COLUMN

js 數(shù)據(jù)類型筆記

eechen / 2243人閱讀

摘要:狹義的對(duì)象數(shù)組函數(shù)運(yùn)算符這個(gè)運(yùn)算符測(cè)試一個(gè)值到底是什么數(shù)據(jù)類型重點(diǎn)就是二和布爾值轉(zhuǎn)數(shù)字化轉(zhuǎn)為數(shù)字是轉(zhuǎn)為數(shù)字是的使用場(chǎng)景表示空值。

這篇文章主要是對(duì)阮一峰老師javascript教程中數(shù)據(jù)類型和運(yùn)算的筆記,方便記憶。
有需要的朋友建議直接觀看阮一峰老師javascript教程,寫得更詳細(xì)

一:數(shù)據(jù)類型概述 1、簡(jiǎn)介6種數(shù)據(jù)

1.1數(shù)值(number):整數(shù)和小數(shù)
1.2字符串(string):文本
1.3布爾值(boolean):表示真?zhèn)蔚膬蓚€(gè)特殊值,即true(真)和false(假)
1.4undefined:表示“未定義”或不存在
1.5null:表示空值,
1.6對(duì)象(object):各種值組成的集合,分成三個(gè)子類型。

狹義的對(duì)象(object)

數(shù)組(array)

函數(shù)(function)

2、typeof 運(yùn)算符

這個(gè)運(yùn)算符測(cè)試一個(gè)值到底是什么數(shù)據(jù)類型
重點(diǎn)就是

typeof null // "object"
typeof undefined // "undefined"

二、null, undefined 和布爾值 1、null, undefined轉(zhuǎn)數(shù)字化

null 轉(zhuǎn)為數(shù)字是 0
undefined 轉(zhuǎn)為數(shù)字是 NAN

2、null, undefined的使用場(chǎng)景

null表示空值。
undefined表示“未定義”,場(chǎng)景有4個(gè)

2.1變量聲明了,但沒有賦值

    var i;
    i // undefined

2.2調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒有提供,該參數(shù)等于 undefined

function f(x) {
  return x;
}
f() // undefined

2.3對(duì)象沒有賦值的屬性

var  o = new Object();
o.p // undefined

2.4函數(shù)沒有返回值時(shí),默認(rèn)返回 undefined

function f() {}
f() // undefined
3、布爾值

3.1哪些運(yùn)算符會(huì)產(chǎn)出布爾值

前置邏輯運(yùn)算符: ! (Not)

相等運(yùn)算符:===,!==,==,!=

比較運(yùn)算符:>,>=,<,<=

3.2其他數(shù)據(jù)類型轉(zhuǎn)換成布爾值
轉(zhuǎn)換規(guī)則是除了下面六個(gè)值被轉(zhuǎn)為false,其他值都視為true。

undefined

null

false

0

NaN

""或""(空字符串)

3.3轉(zhuǎn)換成布爾值的應(yīng)用環(huán)境
大部分是用于判斷程序流程,如下面把if()里面判斷成布爾值

if ("") {
  console.log("true");
}
三、數(shù)值(該部分內(nèi)容較多,我只是簡(jiǎn)要摘取一部分)

數(shù)值組成方式
JavaScript 內(nèi)部,所有數(shù)字都是以64位浮點(diǎn)數(shù)形式儲(chǔ)存。
第1位:符號(hào)位,0表示正數(shù),1表示負(fù)數(shù)
第2位到第12位(共11位):指數(shù)部分
第13位到第64位(共52位):小數(shù)部分(即有效數(shù)字)

四、字符串

1、定義:
字符串就是零個(gè)或多個(gè)排在一起,放在單引號(hào)或雙引號(hào)之中的字符

2、字符串使用的異常場(chǎng)景

2.1 單引號(hào)字符串的內(nèi)部,可以使用雙引號(hào),不能直接使用單引號(hào)。雙引號(hào)字符串的內(nèi)部,可以使用單引號(hào),不能直接使用雙引號(hào)

"key = "value""

2.2 在單引號(hào)字符串的內(nèi)部,使用單引號(hào),就必須在內(nèi)部的單引號(hào)前面加上反斜杠,用來轉(zhuǎn)義

"Did she say "Hello"?"
// "Did she say "Hello"?"

2.3字符串默認(rèn)只能寫在一行內(nèi),分成多行將會(huì)報(bào)錯(cuò)

"a
b
c"
// SyntaxError: Unexpected token ILLEGAL

2.4如果長(zhǎng)字符串必須分成多行,可以在每一行的尾部使用反斜杠

注意,反斜杠的后面必須是換行符,而不能有其他字符(比如空格),否則會(huì)報(bào)錯(cuò)。

var longString = "Long 
long 
long 
string";

longString
// "Long long long string"

2.5可以用+連接多個(gè)單行字符串,將長(zhǎng)字符串拆成多行書寫

var longString = "Long "
  + "long "
  + "long "
  + "string";

2.6 es6新增寫法
使用`包裹字符串,就可以實(shí)現(xiàn)換行。**這個(gè)符號(hào)是鍵盤esc下面那個(gè)鍵**

3、字符串的使用

3.1獲取字符串的長(zhǎng)度

 var str = "hello";
    console.log( str.length );

3.2通過下標(biāo)獲取到字符串某個(gè)字符的值

 console.log( str[0] );  //h
 console.log( str[str.length - 1]  ); // 0

3.3通過charaAt獲取到字符串某個(gè)字符的值

var str = "hello";
console.log( str.charAt(0) ); // h
console.log( str.charCodeAt(0) ); //輸出對(duì)應(yīng)字符的ASCII碼

3.4字符串截取
注意截取后,原來的字符串不變

 var str = "hello world";
 var sub1 = str.substr(1, 3); // 第一個(gè)是開始位置, 第二個(gè)是長(zhǎng)度  
 var sub2 = str.substring(1, 3); // 第一個(gè)是開始位置,第二個(gè)是結(jié)束位置,str[結(jié)束位置]不會(huì)被截取進(jìn)去

3.5用search查找字符串內(nèi)是否有對(duì)應(yīng)的內(nèi)容
原來的字符串不變

var str = "hello my world";
var s1 = str.search("my");   //6(開始位置) 找不到為-1

3.6 用replace替換字符串的值
原來的字符串不變

 var s2 = str.replace("my", "your") //前面是被替換內(nèi)容,后面是替換內(nèi)容

3.7改變字符串大小寫
字符串操作不會(huì)修改原來的字符串

var str = "Hello";
    str.toUpperCase(); //HELLO
    str.toLowerCase(); //hello

3.8字符串拼接

兩個(gè)不同字符串相+

var str1="hello"
var str2="world"
str1+str2  //"helloworld"

字符串名和字符串相加

var color ="red"

var str="衣服的顏色是"+color //衣服的顏色是red

字符串模板

var name = "饑人谷"
var website = "jirengu.com"

var str = `你好, 這里是${name},${website},開啟你的前端之路`
//"你好, 這里是饑人谷,jirengu.com,開啟你的前端之路"
五、對(duì)象 1、定義:

對(duì)象就是一組“鍵值對(duì)”(key-value)的集合,是一種無序的復(fù)合數(shù)據(jù)集合。

2、對(duì)象的組成
var obj = {
  foo: "Hello",
  bar: "World"
};

該對(duì)象內(nèi)部包含兩個(gè)鍵值對(duì)

foo是“鍵名”(成員的名稱),字符串Hello是“鍵值”(成員的值)

兩個(gè)鍵值對(duì)之間用逗號(hào)分隔

3、鍵名的定義規(guī)則

對(duì)象的每一個(gè)鍵名又稱為“屬性”(property)

3.1對(duì)象的所有鍵名都是字符串,可以不用打引號(hào)

3.2鍵名如果是數(shù)值,會(huì)轉(zhuǎn)成字符串

var obj = {
  1: "a",
  3.2: "b",
  1e2: true,
  1e-2: true,
  .234: true,
  0xFF: true
};

3.3鍵名的命名滿足標(biāo)識(shí)名的條件,不然就要打上引號(hào)

var obj = {
  1p: "Hello World"
};

// 不報(bào)錯(cuò)
var obj = {
  "1p": "Hello World",
  "h w": "Hello World",
  "p+q": "Hello World"
};
4、鍵值的使用場(chǎng)景

對(duì)象的每一個(gè)鍵名又稱為“屬性”(property),它的“鍵值”可以是任何數(shù)據(jù)類型。

4.1屬性的值為函數(shù),通常把這個(gè)屬性稱為“方法”,它可以像函數(shù)那樣調(diào)用。

var obj = {
  p: function (x) {
    return 2 * x;
  }
};

obj.p(1) // 2

4.2屬性的值還是一個(gè)對(duì)象,就形成了鏈?zhǔn)揭谩?/p>

var o1 = {};
var o2 = { bar: "hello" };

o1.foo = o2;
o1.foo.bar // "hello"
5、對(duì)象獲取鍵值的方式(只有兩種)

5.1通過對(duì)象名.屬性名來獲取屬性的值

var o1 = {};
var o2 = { bar: "hello" };

o1.foo = o2;
**o1.foo.bar** // "hello" 

5.2通過對(duì)象名["屬性名"]來獲取屬性的值,注意中括號(hào)里面是字符串,所以一定要加引號(hào)

o1["foo"]
ol[foo]就是錯(cuò)誤的,因?yàn)闉g覽器解析時(shí)會(huì)認(rèn)為foo是一個(gè)變量,找不到這個(gè)變量就會(huì)報(bào)錯(cuò)
6、對(duì)象的引用

如果把一個(gè)原始類型(number 字符串 等)的值賦值給變量。那變量這時(shí)都是值的拷貝。
如果把對(duì)象賦值給變量,我們只是將對(duì)象的存儲(chǔ)地址指向了變量。

如果不同的變量名指向同一個(gè)對(duì)象,那么它們都是這個(gè)對(duì)象的引用,修改其中一個(gè)變量,會(huì)影響到其他所有變量。

var o1 = {};
var o2 = o1;

o1.a = 1;
o2.a // 1

o2.b = 2;
o1.b // 2
7、表達(dá)式還是語(yǔ)句?

JavaScript規(guī)定,如果行首是大括號(hào),一律解釋為語(yǔ)句(即代碼塊)。
如果要解釋為表達(dá)式(即對(duì)象),必須在大括號(hào)前加上圓括號(hào)。

eval("{foo: 123}") // 123   這是一個(gè)語(yǔ)句,表示一個(gè)代碼區(qū)塊,里面有一個(gè)標(biāo)簽foo,指向表達(dá)式123。
eval("({foo: 123})") // {foo: 123}  這是一個(gè)表達(dá)式,表示一個(gè)包含foo屬性的對(duì)象
{foo:123}.foo 是錯(cuò)誤的
({foo:123}).foo //輸出的是123
8、對(duì)象的使用方法

8.1 檢查變量是否聲明
原理:在瀏覽器環(huán)境,所有全局變量都是window對(duì)象的屬性。
window.a的含義就是讀取window對(duì)象的a屬性,如果該屬性不存在,就返回undefined,并不會(huì)報(bào)錯(cuò)。

if ("a" in window) {
  // 變量 a 聲明過
} else {
  // 變量 a 未聲明
}

8.2屬性的賦值
和讀取值一樣,有兩種方法

o.p = "abc";
o["p"] = "abc";

8.3用Object.keys查看所有屬性

var o = {
  key1: 1,
  key2: 2
};

Object.keys(o);
// ["key1", "key2"]

8.4 delete刪除對(duì)象的屬性

var o = {p: 1};
Object.keys(o) // ["p"]

delete o.p // true
o.p // undefined

注意:delete命令不能刪除var命令聲明的變量,只能用來刪除屬性。因?yàn)関ar聲明的全局變量都是頂層對(duì)象的屬性,而且默認(rèn)不得刪除。

var p = 1;
delete p // false
delete window.p // false

8.5用for...in循環(huán)用來遍歷對(duì)象的全部屬性
var obj = {a: 1, b: 2, c: 3};

for (var i in obj) {
console.log(o[i]);
}
// 1
// 2
// 3
i就是定義了一個(gè)變量,里面放的就是對(duì)象的屬性

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

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

相關(guān)文章

  • JS筆記二:JS歷史、數(shù)據(jù)類型、for in遍歷對(duì)象、typeof的BUG

    摘要:學(xué)習(xí)筆記二個(gè)人學(xué)習(xí)筆記參考阮一峰的教學(xué)學(xué)習(xí)筆記二是對(duì)學(xué)習(xí)筆記一的補(bǔ)充歷史是標(biāo)準(zhǔn)新增特性匯總方應(yīng)航知乎專欄個(gè)小變化新增特性匯總方應(yīng)航知乎專欄以后一年一次只增加了兩個(gè)特性只增加了個(gè)特性功能最多數(shù)據(jù)類型補(bǔ)充字符串多行字符串新特性多行字符串 JavaScript學(xué)習(xí)筆記二 個(gè)人學(xué)習(xí)筆記 參考阮一峰的JavaScript教學(xué) 學(xué)習(xí)筆記二是對(duì)學(xué)習(xí)筆記一的補(bǔ)充 JavaScript歷史 sho...

    mrcode 評(píng)論0 收藏0
  • js筆記內(nèi)容

    摘要:定義運(yùn)算符用來判斷一個(gè)構(gòu)造函數(shù)的屬性所指向的對(duì)象是否存在另外一個(gè)要檢測(cè)對(duì)象的原型鏈上,用于引用類型。但其實(shí),實(shí)例的來自于構(gòu)造函數(shù)的。 一、關(guān)于css 樣式優(yōu)先級(jí): 行內(nèi)樣式>id選擇器樣式>類選擇器樣式>標(biāo)簽選擇器樣式>通配符選擇器的樣式>繼承樣式>默認(rèn)樣式 二、關(guān)于js 關(guān)于問題:**JavaScript中的所有事物都是對(duì)象??** 從typeof和instanceo...

    n7then 評(píng)論0 收藏0
  • js隨手筆記-------理解JavaScript中的堆和棧

    摘要:最近由于做的項(xiàng)目需求牽扯到了大量的數(shù)據(jù)處理,于是就想了解一下中的數(shù)據(jù)類型,于是就百度了一下找到了些干貨,在這里精簡(jiǎn)下做個(gè)筆記,以方便日后需要的時(shí)候查看這里先說兩個(gè)概念堆棧堆是堆內(nèi)存的簡(jiǎn)稱。 最近由于做的項(xiàng)目需求牽扯到了大量的數(shù)據(jù)處理,于是就想了解一下javascript中的數(shù)據(jù)類型,于是就百度了一下找到了些干貨,在這里精簡(jiǎn)下做個(gè)筆記,以方便日后需要的時(shí)候查看:這里先說兩個(gè)概念:1、堆(...

    reclay 評(píng)論0 收藏0
  • 前端筆記——JS基礎(chǔ)(變量類型和計(jì)算)

    摘要:基礎(chǔ)變量類型和計(jì)算中使用的類型基本類型引用類型對(duì)象數(shù)組函數(shù)引用類型只能區(qū)分基本類型,無法區(qū)分對(duì)象數(shù)組這三種引用類型何時(shí)使用何時(shí)使用字符串拼接類型轉(zhuǎn)換號(hào)語(yǔ)句邏輯運(yùn)算符當(dāng)時(shí)判斷一個(gè)變量是被當(dāng)做還是相當(dāng)于,簡(jiǎn)寫形式這是源碼中推薦的寫法其他情況全部 JavaScript基礎(chǔ)——變量類型和計(jì)算 q:JS中使用 typeof 的類型? 基本類型 `undefined` `null` `bool...

    wangtdgoodluck 評(píng)論0 收藏0
  • JS高級(jí)程序設(shè)計(jì)(1-3章)-筆記

    摘要:寫在前面本文記錄的是我不熟悉或者我認(rèn)為值得注意的地方,并不是書上知識(shí)點(diǎn)的概括。再就是畫圖這種。與瀏覽器沒有依賴關(guān)系。 寫在前面 本文記錄的是我不熟悉或者我認(rèn)為值得注意的地方,并不是書上知識(shí)點(diǎn)的概括。 第1章 JavaScript簡(jiǎn)介 JS誕生時(shí)間:1995年(好年輕...) JS誕生背景:表單數(shù)據(jù)合法性由服務(wù)端驗(yàn)證的用戶體驗(yàn)不好,希望能在客戶端進(jìn)行驗(yàn)證 JS現(xiàn)在用處:如果沒有...

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

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

0條評(píng)論

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