js知識點 掘金 JS基礎筆記(一)

2021-10-17 05:28:13 字數 2140 閱讀 9225

基礎(一)

#### 提公升

##### 宣告提公升

console.log(r);

var r = 'hello world';

// 輸出undefined

上述**等價於

var r;

console.log(r);

r = 'hello world';

之所以會輸出 undefined,原因就在於宣告的提公升,var 變數會提公升到頂部進行宣告。

再舉個例子

var r = 'hello world';

var r;

console.log(r);

複製**

這段**輸出的會是 hello world

上述**等價於

var r;

var r;

r = 'hello world';

console.log(r);

複製**

函式提公升

如下例子

console.log(a);

function a() {};

var a = 1;

複製**

輸出將會是 f a() {};

上述**等價於

function a() {};

var a;

console.log(a);

a = 1;

複製**

函式會被提公升,且優先於變數提公升。

根據提公升的例子,說明了var宣告的變數會提公升到作用域的頂部,且他會被掛在到window 上,這可能就會引發一些不可預估的問題。

下面看看 let 和 const

let a = 1;

var b = 1;

const c = 1;

console.log(window.a);

console.log(window.c);

function t() , )

複製**

slice

不改變原陣列

用於返回乙個新的指定範圍的陣列

第乙個引數為startindex,第二個引數為endindex(可選)

如果第乙個引數為負值,從最後乙個開始算,-1為倒數第乙個

只有第乙個引數:

會返回[arr[startindex], ...]

兩個引數都包含的時候:

會返回[arr[startindex], ..., arr[endindex - 1]]

const a = [1, 2, 3, 4];

console.log(a.slice(2, 4)) // [3, 4]

複製**

splice

splice() 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。

該方法會改變原始陣列

arr.splice(index, howmany, item1, ..., itemx)

index為必須,整數,規定新增/刪除item的位置

howmany 必須 要刪除的數目

imte1, ..., itemx 可選 向陣列新增的新專案

返回乙個新陣列

call有兩個引數:指向物件,引數列表

bind支援上述兩種 但是會返回乙個函式 不會馬上執行

call

function.prototype.newcall = function(context) else ;

複製**

instanceof 的原理

function myinstanceof(left, right) {

let prototype = right.prototype;

left = left.__proto__;

whilt(true) {

if (prototype === left) {

return true;

if(left === null || left === undefined)

return false;

left = left.__proto__;

複製**首先獲取型別的原型

然後獲取物件的原型

然後一直迴圈判斷物件的原型是否等於型別的原型,一直到原型物件為null

為什麼0.1 + 0.2 !== 0.3

js採用ieee 754雙精度版本

js知識點 掘金 JS小知識點補充

toc 邏輯或與邏輯與 1.在條件判斷中使用 條件中的 兩個條件都成立,整體判斷條件才會成立 條件中的 只要有乙個條件成立,整體判斷條件就成立。2.在賦值操作中使用 var a 1 2 首先驗證1是真假,如果為真,把1賦值給a,如果為假,把2賦值給a a b 先驗證a的真假,為真結果是a,為假結果是...

js知識點 掘金 一些JS基礎知識

js組成的三大部分 ecmascript es3 es6 9 定義了js的語法規範 定義了語言本身的變數 資料值 操作語句 記憶體管理.等內容 dom document object model 文件物件模型 提供對應的屬性和方法,可以讓js操作頁面中的dom元素 bom browser objec...

js基礎知識點(一)

js原始型別有哪幾種 null是物件嗎?boolean number null undefined string symbol 另外對於null來說,很多人會認為他是個物件型別,其實這是錯誤的。雖然typeof null會輸出object,但是這只是 js 存在的乙個悠久 bug。在 js 的最初版...