基礎(一)
#### 提公升
##### 宣告提公升
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 的最初版...