重新鞏固JS(一) JavaScript基本型別

2021-09-24 07:21:01 字數 4456 閱讀 6471

重新鞏固js系列,都是比較基礎的東西,可以進行查漏補缺,很快看完,這是第一篇。

其他js重新鞏固系列:

在程式設計領域中,資料型別(data type)用來將變數的值(value)進行分類,這樣在對變數的值進行數學、關係、邏輯等運算時就不會產生錯誤了。例如:2 * 2是合法的,2 * john就不合法了。

js中的基本型別分為原始型別物件型別兩種

原始型別(6種):number、string、boolean、symbol、null、undefined

採用標準:不區分整數和浮點數,所有數值都用浮點數表示,採用ieee 754標準定義的64位浮點格式。

整數:範圍是-2 ^53 ~ 2^53,有十進位制,二進位制(binary,以0b為字首,之後的值由0~1組成)、八進位制(octal,以0o為字首,之後的值由0~7組成,注:不推薦以0為字首的表示法)、十六進製制(hexadecimal,以0x為字首,之後的值由0~9a~f(10~15)組成)表示。例如:

//二進位制

0b11

//合法

0b22 //不合法

//八進位制

0o67

//合法

0o89 //不合法

//十六進製制

0xaf

//合法

0xjk //不合法

複製**

浮點數:數值中必須包含乙個小數點,小數點後至少要有一位數字,浮點數計算可能會有誤差,對於極大或極小的數值可以用e表示法,例如:

//存在誤差

0.1 + 0.2 = 0.30000000000000004

//e表示法

3.14e5

//即為314000

複製**

特殊數值,主要來自:全域性直接量(無窮大infinity、非數字nan)、number物件的屬性(number.max_valuenumber.min_value等)、math物件(math.pimath.e等)的屬性等。

採用標準:用來表示文字,由0個或多個16位unicode字元組成的字串行。

可以使用單引號或者雙引號(效果一樣,必須成對出現),在js**中經常會出現html字串,由於html標籤中的屬性值推薦的是雙引號,所以js字串推薦使用單引號,例如:

let imgel = '複製**

索引從0開始,長度是字元的個數

let str = 'hello world'

str.length // => 11

str[0] // => 'h'

複製**

字串不能直接換行,如果想拆分成多行,需要在每行的結尾新增反斜槓\,輸出的結果還是單行。

// 錯誤寫法

'abc'

//正確寫法

let str = 'multiple\

lines\

end'

str // => 'multiplelinesend'

複製**

轉義字元:反斜槓後加乙個字元表示轉義字元,比如\n表示換行符,如果斜槓後面的字元沒有特殊含義,則忽略斜槓。常見轉義字元:

字元含義

\n換行

\\斜槓

\'單引號,在用單引號表示的字串中使用

\"雙引號,在用雙引號表示的字串中使用

\xnn十六進製制**表示的乙個字元(其中n為0~f)。例如,\x41表示'a'

\unnnn十六進製制**表示的unicode字元(其中n為0~f)。例如,\u03a3表示希臘字元'∑'

模板字串(es6新增):使用反引號(重音符," ` "),裡面的變數使用${}包裹,可以直接換行。

let name = 'cc'

name // => 'cc'

`hello, $`

//=> 'hello, cc'

複製**

用來表示真或假,開或關等含義。

只有兩種值truefalse,通常用於if/else語句中,若為true則執行if語句中的邏輯,否則執行else裡面的邏輯。

if( status === 'open')  else 

複製**

假值和真值:js中任意值都可以轉換為布林值。一共6個值(undefined、null、0、-0、nan、"")會被轉換成false,其他值都是true 。

可用作物件的非字串屬性,它是唯一且不可變的,例如:

let uniquename = symbol(); 

let person = {};

person[uniquename] = 'cc';

console.log(person[uniquename]); // => cc

複製**

(備註:後期詳細講解)

表示未定義或不存在,只有乙個值undefined

let abc;

console.log(abc); // => undefined

console.log(abcd); //報錯,注意未賦值和未宣告的區別

let obj = {};

console.log(obj.name) // => undefined

複製**

表示空值,null型別只有乙個值null。如果定義乙個變數來表示乙個物件的話,宣告時推薦將其設定為null。

let obj = null;

obj =

複製**

除了原始型別的值以外,其他都是物件。物件是鍵值對的集合,值可以是原始值,也可以是物件。例如:

//author物件:有name屬性,值為'cc',還有age屬性,值為100

let author =

複製**

特殊物件函式 function陣列 array日期 date正則 regexp全域性 global錯誤 error。 (備註:後期單獨詳細講解)

可以使用typeof操作符來檢測變數的資料型別,它返回的值為乙個小寫的字串。

變數abc的取值

typeof abc 的結果

let abc;'undefined'

let abc = true;'boolean'

let abc = 123;'number'

let abc = 'abc';'string'

let abc = function () {};'function'

let abc = {}; //、null'object'

let abc = symbol();'symbol'

說明:整理自網易公開課。

鞏固js(一)詞法結構 保留字一

break delete function return typeof case do if switch var catch else in this 單出乙個討論 void continue false instanceof throw while debugger finally new tr...

JS今天又鞏固了一點

1 undefined和null undefined三種情況 三種情況 宣告而未賦值 宣告而賦值為undefined 未宣告而typeof null表示宣告了,賦值,值為null 特殊的是null undefined 2 js無過載,函式名只能有乙個,多次宣告會覆蓋 3 switch 中的值可以是變...

鞏固與修煉(一)

總結一下這兩天的學習過程 昨天研究了tensorflow映象,並根據官方映象修改了jupyter notebook中的檔案目錄與預設密碼的修改 注 這裡從嘗試使用指令碼來完成,結果失敗,由於需要使用python,在開啟的命令中設定密碼,並將生成的hash鍵值即sha1值提取 這裡失敗了好久好久 並將...