let(****聲明變量)前端
const(****聲明常量,常量不能修改的量)es6
var****、let、const的區別面試
\1. let和const聲明變量不存在變量提高,若是要使用這個變量,咱們須要在變量定義以後使用;數組
\2. let和const不能重複聲明變量,若是重複聲明會報錯;瀏覽器
\3. 用let 和 const 在全局聲明變量不會給window增長屬性;函數
\4. let和const出如今代碼塊中,會把代碼塊(字面量聲明對象除外)變成塊級做用域,而且出現暫時 性死區 class(****建立類)工具
import/export(****基於ES6的模塊規範建立導入/導出模塊(文件/組件))this
new set(****數組去重)prototype
Symbol(****惟一的值) var a = Symbol('qqq')指針
...ary(****展開運算符、剩餘運算符)
**${}**
模板字符串
解構賦值 let {a} = obj; let [b] = ary
for of 循環
()=>{} 箭頭函數
箭頭函數與普通函數的區別:
\1. 箭頭函數是匿名函數,不能做爲構造函數,不能使用new
\2. 箭頭函數沒有原型屬性
3.this指向不一樣,箭頭函數的this是定義時所在的對象,普通函數看前面有沒有.,點前面是誰this 就是誰,沒有.就是window
\4. 不可使用arguments對象,該對象在函數體內不存在。
數組新增方法:flat、find、findIndex
對象新增方法: Object.assign() Object.values() Object.keys() Object.create()...
基本數據類型: number 數字; boolean 布爾值 :有兩個值 true、false ;string 字符串
null 空對象; undefined 未定義的值(不少瀏覽器的初始值是undefined)
Symbol() 產生一個惟一的值,和誰都不重複
null和undefined的區別:
null 是一個表示"無"的對象,轉爲數值時爲 0
undefined 是一個表示"無"的原始值,轉爲數值時爲 NaN
當聲明的變量還未被初始化時,變量的默認值爲 undefined
null 用來表示還沒有存在的對象,經常使用來表示函數企圖返回一個不存在的對象
undefined 表示 「缺乏值」,就是此處應該有一個值,可是尚未定義。
典型用法是:
\1. 變量被聲明瞭,但沒有賦值時,就等於 undefined
\2. 調用函數時,應該提供的參數沒有提供,該參數等於 undefined
\3. 對象沒有賦值的屬性,該屬性的值爲 undefined
\4. 函數沒有返回值時,默認返回 undefined
null 表示「沒有對象」,即該處不該該有值。
典型用法是:
\1. 做爲函數的參數,表示該函數的參數不是對象
\2. 做爲對象原型鏈的終點
引用數據類型:
對象
.普通對象
.數組對象
.正則對象(匹配字符串的規則)
.日期對象
.函數對象
...
對象的存儲過程:
\1. 開闢一個空間地址
\2. 把鍵值對存儲到這個空間地址的堆內存中
\3. 把這個對象指針賦值給變量名
let obj = {
a:1,
fn:(function (val) {
// 賦給fn的是自執行函數的執行結果 也就是一個undefined
// 該自執行函數只會執行一次
console.log(val);
})(obj.a)
};
let obj2 = obj;// 二者表明了同一個地址;
// 獲取屬性的值 obj.fn 或者 obj['fn']
// 新增屬性: obj.c = 100 或者 obj['c'] = 100
// 真刪除 delete obj.a (在嚴格模式下不支持該方法); 假刪除: obj.a = null;
// 引用類型小習題
let a = 3;
let b = new Number(3);
let c = 3;
console.log(a == b);
console.log(a === b);
console.log(b === c);
//=========================
const a = {};
const b = { key: "b" };
const c = { key: "c" };
a[b] = 123;
a[c] = 456;
console.log(a[b]);
基本數據類型與引用數據類型的區別:
基本數據類型是操做值,引用數據類型操做的是堆內存空間地址
布爾值轉換:0 NaN '' null undefined 轉化成布爾值是false,其他的都是true
檢驗有效數字的方法:isNaN
經常使用的數據類型檢測方式: typeof constructor instanceof Object.prototype.toString.call()
比較運算符:
== 相對比較:會進行默認的類型轉化; 若轉換以後的值相等,則結果就是true
=== 絕對比較,值不但要相同、類型也得相同。
引用數據類型之間的比較,就看是否是同一個地址;
邏輯運算符:
|| 表示或者,前邊成立給前邊,前邊不成立給後邊
&& 表示而且前邊成立給後邊,前邊不成立給前邊
本文由博客羣發一文多發等運營工具平臺 OpenWrite 發佈