js基礎概括總結1

閉包

閉包的優勢
1.能夠讀取函數內部的變量
2.這些變量的值始終保持在內存中
適用場景javascript

做用域

做用域指的是有權訪問的變量集合。
在 JavaScript 中有兩種做用域類型:vue

  • 局部做用域
  • 全局做用域

JavaScript 擁有函數做用域:每一個函數建立一個新的做用域。
做用域決定了這些變量的可訪問性(可見性)。
函數內部定義的變量從函數外部是不可訪問的(不可見的)。java

局部JavaScript變量

在 JavaScript 函數中聲明的變量,會成爲函數的局部變量
局部變量的做用域是局部的:只能在函數內部訪問它們。
實例正則表達式

// 此處的代碼不能使用 carName 變量
function myFunction() {
    var carName = "porsche";
    // 此處的代碼能使用 carName 變量
}

全局 JavaScript 變量

函數以外聲明的變量,會成爲全局變量
全局變量的做用域是全局的:網頁的全部腳本和函數都可以訪問它。
實例數組

var carName = " porsche";
// 此處的代碼可以使用 carName 變量
function myFunction() {
    // 此處的代碼也可以使用 carName 變量
}

javascript變量提高

變量提高:在 JavaScript 中,能夠在使用變量以後對其進行聲明。經過 var 聲明的變量會提高到頂端.
用 let 或 const 聲明的變量和常量不會被提高!
在不一樣的做用域或塊中,經過 let 從新聲明變量是容許的
經過 const定義的變量與 let 變量相似,但不能從新賦值。
const 變量必須在聲明時賦值。可是能夠更改常量對象的屬性,也能夠更改常量數組的元素,瀏覽器

const PI = 3.14159265359;

如何修改對象的屬性:defineProperty.
JSON.parse(JSON.stringify(aaa).replace(/CourseName/g,"title"))安全

建立一個空對象

var emptyObj1 = {};
var emptyObj2 = new Object();
var emptyObj2 = Object.create(Object.prototype);

this指針

JavaScript this 關鍵詞指的是它所屬的對象。
它擁有不一樣的值,具體取決於它的使用位置:
在方法中,this 指的是全部者對象。
單獨的狀況下,this 指的是全局對象。
在函數中,this 指的是全局對象。
在函數中,嚴格模式下,this 是 undefined。
在事件中,this 指的是接收事件的元素。
像 call() 和 apply() 這樣的方法能夠將 this 引用到任何對象。服務器

call()和apply()

apply()和call()差很少,只不過apply()第二個參數必須傳入的是一個數組,而call() 第二個參數能夠是任意類型。改變了 this 指向,讓新的對象能夠執⾏該函數,並能接受參

filter()的做⽤也是⽣成⼀個新數組,在遍歷數組的時候將返回值爲
true 的元素放⼊新數組,能夠利用這個函數刪除一些不須要的元素。cookie

session和cookie的區別

cookie:數據存儲在瀏覽器端;cookie有大小限制,以及瀏覽器在存cookie也有個數限制;cookie存儲不太安全,別人能夠經過攔截或本地文件獲得你的cookie而後進行攻擊。session

session:數據存儲在服務器端;session沒有大小限制;session存儲較爲安全,佔用服務器的內存。

token生成過程,如何生成token

token的做用是①防止表單重複提交,當點擊一次提交按鈕後,再點擊就沒用了②用來做身份驗證

字符串

indexOf() 方法返回字符串中指定文本首次出現的索引(位置)
slice() 提取字符串的某個部分並在新字符串中返回被提取的部分。
該方法設置兩個參數:起始索引(開始位置),終止索引(結束位置)。

var str = "Apple, Banana, Mango";
var res = str.slice(7,13);

replace() 方法用另外一個值替換在字符串中指定的值
concat() 鏈接兩個或多個字符串
trim() 方法刪除字符串兩端的空白符
split() 方法將字符串轉換爲數組

數組

indexOf() 方法在數組中搜索元素值並返回其位置

var colors=["yellow","red","blue","black"];
var a=colors.indexOf("yellow");

lastIndexOf() 與 Array.indexOf() 相似,可是從數組結尾開始搜索。

布爾值

JavaScript 提供一種布爾數據類型。它只接受值truefalse
全部不具備「真實」值的即爲 False
布爾值爲false:0(零)、-0 (負零)、""(空值)、undefined 、null 、NaN 。

constructor屬性返回全部 JavaScript 變量的構造器函數。

"Bill".constructor                 // 返回 "function String()  { [native code] }"
(3.14).constructor                 // 返回 "function Number()  { [native code] }"
false.constructor                  // 返回 "function Boolean() { [native code] }"
[1,2,3,4].constructor              // 返回 "function Array()   { [native code] }"
{name:'Bill', age:62}.constructor  // 返回" function Object()  { [native code] }"
new Date().constructor             // 返回 "function Date()    { [native code] }"
function () {}.constructor         // 返回 "function Function(){ [native code] }"

能夠經過檢查 constructor 屬性來肯定某個對象是否爲數組(包含單詞 "Array"):
例如:
function isArray(myArr){
return myArr.constructor.toString().indexOf("Array")
}

正則表達式

正則表達式是構成搜索模式(search pattern)的字符序列。當您搜索文本中的數據時,您可以使用搜索模式來描述您搜索的內容。
語法
/pattern(模式)/modifiers(修飾符);

調試

clipboard.png

clipboard.png

vue

https://www.jianshu.com/p/2d3...

相關文章
相關標籤/搜索