最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript作用域全面總結(jié)(附詳細(xì)代碼)

 更新時間:2025年11月19日 10:33:32   作者:盛夏綻放  
JavaScript的作用域一直以來是前端開發(fā)中比較難以理解的知識點(diǎn),下面這篇文章主要介紹了JavaScript作用域全面總結(jié)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

作用域(Scope)是JavaScript中一個核心概念,決定了變量、函數(shù)和對象的可訪問性。以下是JavaScript作用域的全面總結(jié),結(jié)合表格和箭頭圖進(jìn)行講解。

一、作用域類型

JavaScript 作用域類型詳解

JavaScript 中有四種主要的作用域類型,每種都有不同的特性和使用場景。下面我將結(jié)合具體代碼示例詳細(xì)講解每種作用域。

1. 全局作用域(Global Scope)

定義:在所有函數(shù)和代碼塊之外聲明的變量

特點(diǎn)

• 在任何地方都可以訪問

• 生命周期與應(yīng)用程序相同

• 使用 var 聲明的全局變量會成為 window 對象的屬性

// 全局作用域示例
var globalVar = '我是全局變量';
let globalLet = '我也是全局變量,但不會掛到window上';
const globalConst = '我是全局常量';

function checkGlobal() {
    console.log(globalVar);  // "我是全局變量"
    console.log(globalLet);  // "我也是全局變量,但不會掛到window上"
    console.log(window.globalVar);  // "我是全局變量" (var特有)
    console.log(window.globalLet);  // undefined (let不會掛載)
}

checkGlobal();

2. 函數(shù)作用域(Function Scope)

定義:在函數(shù)內(nèi)部聲明的變量

特點(diǎn)

• 只能在函數(shù)內(nèi)部訪問

var 聲明的變量具有函數(shù)作用域

• 函數(shù)參數(shù)也屬于函數(shù)作用域

function functionScopeDemo() {
    var funcVar = '函數(shù)內(nèi)的var變量';
    let funcLet = '函數(shù)內(nèi)的let變量';
    
    if (true) {
        var innerVar = 'if塊內(nèi)的var變量';  // 實(shí)際上屬于函數(shù)作用域
        let innerLet = 'if塊內(nèi)的let變量';  // 屬于塊級作用域
    }
    
    console.log(funcVar);    // "函數(shù)內(nèi)的var變量"
    console.log(funcLet);    // "函數(shù)內(nèi)的let變量"
    console.log(innerVar);   // "if塊內(nèi)的var變量" (可訪問)
    console.log(innerLet);   // ReferenceError: innerLet is not defined
}

functionScopeDemo();
console.log(funcVar);  // ReferenceError: funcVar is not defined

3. 塊級作用域(Block Scope)

定義:由 {} 包圍的代碼塊內(nèi)部的作用域

特點(diǎn)

letconst 聲明的變量具有塊級作用域

• 適用于 if、forwhile、switch 等代碼塊

var 聲明的變量不受塊級作用域限制

// 塊級作用域示例
if (true) {
    var blockVar = '塊內(nèi)的var變量';  // 實(shí)際上會提升到函數(shù)或全局作用域
    let blockLet = '塊內(nèi)的let變量';  // 真正的塊級作用域
    const blockConst = '塊內(nèi)的const常量';
    
    console.log(blockVar);   // "塊內(nèi)的var變量"
    console.log(blockLet);   // "塊內(nèi)的let變量"
    console.log(blockConst); // "塊內(nèi)的const常量"
}

console.log(blockVar);   // "塊內(nèi)的var變量" (可訪問)
console.log(blockLet);   // ReferenceError: blockLet is not defined
console.log(blockConst); // ReferenceError: blockConst is not defined

// for循環(huán)中的塊級作用域
for (let i = 0; i < 3; i++) {
    setTimeout(() => console.log(i), 100); // 輸出 0, 1, 2 (每個i有獨(dú)立作用域)
}

for (var j = 0; j < 3; j++) {
    setTimeout(() => console.log(j), 100); // 輸出 3, 3, 3 (共享同一個j)
}

4. 模塊作用域(Module Scope)

定義:ES6 模塊中聲明的變量

特點(diǎn)

• 每個模塊文件都有自己的作用域

• 需要使用 export 導(dǎo)出才能被其他模塊訪問

• 使用 import 導(dǎo)入其他模塊的變量

// moduleA.js
const privateVar = '我是模塊私有變量'; // 模塊作用域,外部無法訪問
export const publicVar = '我是模塊導(dǎo)出變量'; // 可以被其他模塊導(dǎo)入

// moduleB.js
import { publicVar } from './moduleA.js';

console.log(publicVar);  // "我是模塊導(dǎo)出變量"
console.log(privateVar); // ReferenceError: privateVar is not defined

5. 作用域的特殊情況

閉包作用域(Closure Scope)

function createCounter() {
    let count = 0; // 閉包作用域
    
    return {
        increment: function() {
            count++;
            return count;
        },
        current: function() {
            return count;
        }
    };
}

const counter = createCounter();
console.log(counter.current()); // 0
console.log(counter.increment()); // 1
console.log(counter.increment()); // 2
// count變量被閉包保護(hù),外部無法直接訪問

立即執(zhí)行函數(shù)表達(dá)式(IIFE)的作用域

(function() {
    var iifeVar = 'IIFE內(nèi)的變量';
    console.log(iifeVar); // "IIFE內(nèi)的變量"
})();

console.log(iifeVar); // ReferenceError: iifeVar is not defined

動態(tài)作用域(this 的綁定)

const obj = {
    value: 42,
    getValue: function() {
        return this.value; // this的綁定在調(diào)用時確定
    }
};

console.log(obj.getValue()); // 42 (this指向obj)

const unboundGet = obj.getValue;
console.log(unboundGet()); // undefined (this指向全局或undefined)

總結(jié)表格

作用域類型聲明方式可訪問范圍變量提升重復(fù)聲明成為window屬性
全局作用域var/let/const全局var: 是, let/const: 否var: 可, let/const: 不可var: 是, let/const: 否
函數(shù)作用域var函數(shù)內(nèi)部
塊級作用域let/const代碼塊內(nèi)部不可
模塊作用域const/let模塊內(nèi)部不可

理解這些作用域類型和它們的特性,可以幫助你編寫更清晰、更少bug的JavaScript代碼。

作用域類型對比表

作用域類型定義位置可訪問性特點(diǎn)示例
全局作用域所有函數(shù)和代碼塊之外任何地方都可訪問生命周期與應(yīng)用程序相同var globalVar = 'global';
函數(shù)作用域函數(shù)內(nèi)部僅在函數(shù)內(nèi)部可訪問var聲明的變量具有函數(shù)作用域function foo() { var local = 'local'; }
塊級作用域{}代碼塊內(nèi)部僅在代碼塊內(nèi)部可訪問letconst聲明的變量具有塊級作用域if(true) { let blockVar = 'block'; }
模塊作用域ES6模塊文件內(nèi)部僅在模塊內(nèi)部可訪問每個模塊有自己的作用域export const moduleVar = 'module';

二、JavaScript 中擁有作用域的元素詳解

JavaScript 中的作用域機(jī)制決定了變量和函數(shù)的可訪問性。下面我將詳細(xì)講解 JavaScript 中所有擁有作用域的元素及其具體行為。

1. 變量聲明方式的作用域

1.1var聲明

  • 作用域類型:函數(shù)作用域
  • 特點(diǎn)
    • 在函數(shù)內(nèi)部聲明則為局部變量
    • 在函數(shù)外部聲明則為全局變量
    • 存在變量提升(hoisting)
    • 可重復(fù)聲明
function varExample() {
  if (true) {
    var x = 10; // 整個函數(shù)內(nèi)都可用
  }
  console.log(x); // 輸出 10
}

1.2let聲明

  • 作用域類型:塊級作用域
  • 特點(diǎn)
    • 只在聲明所在的代碼塊內(nèi)有效
    • 不存在變量提升
    • 不可重復(fù)聲明
    • 暫時性死區(qū)(TDZ)
function letExample() {
  if (true) {
    let y = 20;
    console.log(y); // 輸出 20
  }
  console.log(y); // 報(bào)錯: y is not defined
}

1.3const聲明

  • 作用域類型:塊級作用域
  • 特點(diǎn)
    • 必須初始化
    • 不能重新賦值
    • 其他特性同 let
    • 對于對象/數(shù)組,內(nèi)容可修改但引用不可變
const PI = 3.1415;
// PI = 3.14; // 報(bào)錯

const arr = [1, 2];
arr.push(3); // 允許
// arr = [4,5]; // 報(bào)錯

2. 函數(shù)的作用域

2.1 函數(shù)聲明

  • 作用域規(guī)則
    • 函數(shù)名綁定在所在作用域
    • 函數(shù)體內(nèi)部形成新的作用域
    • 存在函數(shù)提升
function outer() {
  inner(); // 可以調(diào)用,因?yàn)楹瘮?shù)提升
  
  function inner() {
    console.log("Inner function");
  }
}

2.2 函數(shù)表達(dá)式

  • 作用域規(guī)則
    • 變量部分遵循變量聲明規(guī)則
    • 函數(shù)體內(nèi)部仍是獨(dú)立作用域
const myFunc = function() {
  // 函數(shù)體作用域
  console.log("Function expression");
};

2.3 箭頭函數(shù)

  • 特殊作用域特性
    • 沒有自己的 thisarguments、supernew.target
    • 繼承父級作用域的 this
    • 更簡潔的詞法作用域綁定
const obj = {
  value: 42,
  getValue: function() {
    setTimeout(() => {
      console.log(this.value); // 正確獲取42,因?yàn)槔^承父作用域this
    }, 100);
  }
};

3. 代碼塊結(jié)構(gòu)的作用域

3.1if/else語句

if (true) {
  let blockScoped = "visible";
  var functionScoped = "visible";
}
console.log(functionScoped); // "visible"
console.log(blockScoped); // 報(bào)錯

3.2 循環(huán)語句

for (let i = 0; i < 3; i++) {
  // i只在循環(huán)體內(nèi)有效
}
console.log(i); // 報(bào)錯

for (var j = 0; j < 3; j++) {
  // j在整個函數(shù)內(nèi)有效
}
console.log(j); // 3

3.3switch語句

switch (x) {
  case 1:
    let result = "one";
    break;
  case 2:
    // result = "two"; // 報(bào)錯,因?yàn)閞esult已在同一作用域聲明
    break;
}

3.4 空代碼塊

{
  let privateVar = "secret";
  const secretKey = "12345";
}
// privateVar 和 secretKey 在這里不可訪問

4. 模塊系統(tǒng)的作用域

4.1 ES6 模塊

// module.js
const privateData = "hidden";
export const publicData = "visible";

// app.js
import { publicData } from './module.js';
console.log(publicData); // "visible"
console.log(privateData); // 報(bào)錯

4.2 CommonJS 模塊(Node.js)

// module.js
const localVar = "local";
module.exports = { publicVar: "public" };

// app.js
const { publicVar } = require('./module');
console.log(publicVar); // "public"
console.log(localVar); // 報(bào)錯

5. 類(Class)的作用域

5.1 類聲明

class MyClass {
  constructor() {
    this.instanceVar = "instance";
  }
  
  method() {
    let localVar = "local";
  }
}

console.log(MyClass); // 類可用
// console.log(localVar); // 報(bào)錯

5.2 類表達(dá)式

const MyClass = class {
  // 類體作用域
};

{
  class PrivateClass {} // 只在塊內(nèi)可用
}

6. 特殊結(jié)構(gòu)的作用域

6.1 立即執(zhí)行函數(shù)表達(dá)式(IIFE)

(function() {
  var private = "secret";
})();
console.log(private); // 報(bào)錯

6.2with語句(已廢棄)

const obj = { a: 1 };
with (obj) {
  console.log(a); // 1
  // 創(chuàng)建了一個臨時作用域鏈
}

6.3try/catch語句

try {
  throw new Error("test");
} catch (err) { // err只在catch塊內(nèi)有效
  console.log(err.message);
}
console.log(err); // 報(bào)錯

三、大白話講清楚JavaScript作用域優(yōu)先級

在了解作用域的優(yōu)先級之前,我們首先要知道作用域的鏈?zhǔn)浇Y(jié)構(gòu):

全局作用域 (window/global)
│
├── 函數(shù)A作用域
│   │
│   ├── 函數(shù)B作用域
│   │   │
│   │   └── 塊級作用域 (if/for等)
│   │
│   └── 塊級作用域
│
├── 函數(shù)C作用域
│
└── 塊級作用域

1. 就近原則 - “先看手邊,再找遠(yuǎn)處”

想象你在一個多層樓的辦公樓里找打印機(jī):

  • 你會先看自己工位旁邊有沒有(當(dāng)前作用域)
  • 沒有的話去部門公共區(qū)找(上一層作用域)
  • 還找不到就去公司總打印室(全局作用域)
let printer = "總打印室"; // 全局

function department() {
  let printer = "部門打印機(jī)"; // 部門級
  
  function employee() {
    let printer = "工位打印機(jī)"; // 個人
    console.log(printer); // 先用"工位打印機(jī)"
  }
  
  employee();
}

2. 先來后到 - “先聲明者優(yōu)先”

就像排隊(duì)買奶茶:

  • 先來的顧客先點(diǎn)單(先聲明的變量先被使用)
  • 后面的同名聲明會被忽略(var允許重復(fù)聲明)
  • 但插隊(duì)是不允許的(let/const不允許重復(fù)聲明)
var drink = "奶茶"; // 第一個顧客
var drink = "咖啡"; // 第二個顧客,替換了前面的
console.log(drink); // 最后買到的是"咖啡"

let food = "漢堡";
// let food = "薯?xiàng)l"; // 報(bào)錯:不能插隊(duì)重復(fù)聲明

3. 內(nèi)外有別 - “里面可以看外面,外面看不到里面”

就像公司保密制度:

  • 普通員工(內(nèi)層)可以看到公司公告(外層變量)
  • 但公司(外層)看不到員工的私人筆記(內(nèi)層變量)
  • 部門之間也互相隔離(不同函數(shù)作用域互不可見)
let companySecret = "今年盈利"; // 公司級

function departmentA() {
  let teamNote = "項(xiàng)目進(jìn)度"; // 部門A私有
  console.log(companySecret); // 可以看公司信息
}

// console.log(teamNote); // 報(bào)錯:外部不能訪問部門內(nèi)部信息

4. 塊級隔離 - “會議室談話不外傳”

就像公司會議室:

  • 在會議室({}代碼塊)里討論的事情(let/const變量)
  • 出了會議室就自動銷毀(不可訪問)
  • 但用大喇叭(var)宣布的全公司都能聽見
{
  let meetingTopic = "裁員計(jì)劃"; // 只在會議室有效
  var announcement = "明年上市"; // 全公司都能聽到
}

// console.log(meetingTopic); // 報(bào)錯:會議內(nèi)容不公開
console.log(announcement); // 可以聽到

5. 閉包特例 - “離職員工帶走公司機(jī)密”

就像員工離職后:

  • 正常應(yīng)該交還門禁卡(銷毀作用域)
  • 但如果他記下了密碼(形成閉包)
  • 之后還能遠(yuǎn)程訪問公司資料(外部訪問內(nèi)部變量)
function createEmployee() {
  let salary = 10000; // 公司內(nèi)部數(shù)據(jù)
  
  return {
    getSalary: () => salary // 離職員工帶走了訪問權(quán)限
  };
}

const exStaff = createEmployee();
console.log(exStaff.getSalary()); // 還能查到工資!

6. 模塊隔離 - “分公司獨(dú)立運(yùn)營”

就像集團(tuán)子公司:

  • 每個子公司(模塊)有自己的資金(變量)
  • 要公開的部分得特別聲明(export)
  • 其他公司想用必須申請導(dǎo)入(import)
// 子公司A.js
let budget = 100萬; // 自己知道
export let project = "新項(xiàng)目"; // 對外公開

// 集團(tuán)公司.js
import { project } from '子公司A';
console.log(project); // 能看見公開項(xiàng)目
// console.log(budget); // 報(bào)錯:看不到別家內(nèi)部預(yù)算

記住這些生活化的比喻,下次遇到作用域問題就想想:

  • 這個變量是"部門公告"還是"私人筆記"?
  • 這個函數(shù)是"在職員工"還是"離職員工"?
  • 這段代碼在"工位"、"部門"還是"總公司"層級?

四、作用域最佳實(shí)踐

作用域的良好使用是編寫高質(zhì)量JavaScript代碼的關(guān)鍵。下面我將通過具體示例詳細(xì)講解作用域的最佳實(shí)踐。

1. 變量聲明方式選擇

優(yōu)先使用 const

// 好 ??
const MAX_SIZE = 100; // 不可變的值使用const
const user = { name: '張三' }; // 引用類型也可以用const
user.name = '李四'; // 可以修改對象屬性

// 差 ??
var MAX_SIZE = 100; // var沒有塊級作用域
let user = { name: '張三' }; // 如果引用不會改變,不需要用let

需要重新賦值時使用 let

// 好 ??
let count = 0;
count = 1; // 需要重新賦值時使用let

// 差 ??
var count = 0; // var容易造成變量提升問題

避免使用 var

// 問題示例 ?
function problematic() {
    if (true) {
        var temp = '臨時值'; // var會提升到函數(shù)作用域
    }
    console.log(temp); // 可以訪問,不符合預(yù)期
}

// 修復(fù)方案 ?
function fixed() {
    if (true) {
        let temp = '臨時值'; // 限制在塊級作用域
    }
    console.log(temp); // ReferenceError: 符合預(yù)期
}

2. 縮小變量作用域范圍

將變量聲明在最小必要作用域內(nèi)

// 好 ??
function processData(data) {
    if (data) {
        const result = transform(data); // 只在需要的地方聲明
        console.log(result);
    }
    // result在這里不可訪問
}

// 差 ??
function processData(data) {
    let result; // 過早聲明
    if (data) {
        result = transform(data);
        console.log(result);
    }
    // result在這里仍然可訪問
}

循環(huán)中的變量作用域

// 好 ??
for (let i = 0; i < 10; i++) { // 每次迭代都有獨(dú)立的i
    setTimeout(() => console.log(i), 100); // 輸出0-9
}

// 差 ??
for (var i = 0; i < 10; i++) { // 共享同一個i
    setTimeout(() => console.log(i), 100); // 輸出10個10
}

3. 避免全局污染

使用IIFE隔離作用域

// 好 ??
(function() {
    const privateVar = '私有變量';
    window.myLib = { // 有選擇地暴露到全局
        publicMethod: function() {
            return privateVar;
        }
    };
})();

// 差 ??
var globalVar = '污染全局'; // 直接污染全局命名空間

使用模塊系統(tǒng)

// utils.js
const privateHelper = () => '私有方法';
export const publicUtil = () => privateHelper();

// app.js
import { publicUtil } from './utils.js';
console.log(publicUtil()); // 使用模塊化的公共方法

4. 閉包的合理使用

有控制地使用閉包

// 好 ??
function createCounter() {
    let count = 0; // 閉包保護(hù)的變量
    return {
        increment: () => ++count,
        get: () => count,
        reset: () => { count = 0; }
    };
}

const counter = createCounter();
counter.increment();
console.log(counter.get()); // 1

// 差 ??
let count = 0; // 直接暴露在全局
function increment() {
    return ++count;
}
// 任何人都可以修改count

避免意外的閉包

// 問題示例 ?
function setupElements() {
    const elements = document.querySelectorAll('.btn');
    for (var i = 0; i < elements.length; i++) {
        elements[i].onclick = function() {
            console.log(i); // 總是輸出elements.length
        };
    }
}

// 修復(fù)方案 ?
function setupElementsFixed() {
    const elements = document.querySelectorAll('.btn');
    for (let i = 0; i < elements.length; i++) { // 使用let
        elements[i].onclick = function() {
            console.log(i); // 正確輸出索引
        };
    }
}

4. 函數(shù)聲明的位置

避免在塊內(nèi)聲明函數(shù)

// 問題示例 ?
if (true) {
    function foo() { console.log('1'); }
} else {
    function foo() { console.log('2'); }
}
foo(); // 不同瀏覽器行為不一致

// 修復(fù)方案 ?
let foo;
if (true) {
    foo = () => console.log('1');
} else {
    foo = () => console.log('2');
}
foo(); // 行為一致

使用函數(shù)表達(dá)式

// 好 ??
const handler = function() { /* 處理邏輯 */ };

// 差 ??
function handler() { /* 處理邏輯 */ }
// 會被提升,可能影響代碼可讀性

6. 命名沖突避免

使用有意義的命名

// 好 ??
function calculateOrderTotal(order) {
    const taxRate = 0.1;
    return order.subtotal * (1 + taxRate);
}

// 差 ??
function calc(a) {
    const b = 0.1; // 無意義的命名
    return a * (1 + b);
}

使用命名空間

// 好 ??
const MyApp = {};
MyApp.Utils = {
    formatDate: function(date) { /* ... */ },
    validateEmail: function(email) { /* ... */ }
};

// 差 ??
function formatDate(date) { /* ... */ } // 直接放在全局
function validateEmail(email) { /* ... */ }

7. 嚴(yán)格模式的使用

// 好 ??
'use strict';
function strictFunc() {
    undeclaredVar = 'test'; // 會拋出ReferenceError
}

// 差 ??
function sloppyFunc() {
    undeclaredVar = 'test'; // 自動創(chuàng)建全局變量
}

總結(jié)表格

最佳實(shí)踐推薦做法不推薦做法原因
變量聲明const > let > var隨意使用var避免變量提升和污染
作用域范圍最小必要作用域過早聲明或全局聲明減少意外訪問
全局變量IIFE/模塊暴露直接聲明全局變量避免命名沖突
閉包使用有控制地使用濫用或意外創(chuàng)建內(nèi)存管理
函數(shù)聲明函數(shù)表達(dá)式塊內(nèi)函數(shù)聲明行為一致性
命名沖突命名空間/模塊簡短無意義命名代碼可維護(hù)性
嚴(yán)格模式始終使用不使用避免隱式錯誤

通過遵循這些最佳實(shí)踐,你可以:

  1. 減少變量污染命名沖突
  2. 提高代碼的可預(yù)測性可維護(hù)性
  3. 避免常見的作用域陷阱
  4. 編寫更安全、更高效的JavaScript代碼

通過理解這些作用域規(guī)則,您可以更好地組織代碼結(jié)構(gòu),避免變量污染和命名沖突,編寫出更健壯、可維護(hù)的JavaScript代碼。

總結(jié)

到此這篇關(guān)于JavaScript作用域全面總結(jié)的文章就介紹到這了,更多相關(guān)JS作用域內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS/jQuery實(shí)現(xiàn)簡單的開關(guān)燈效果【案例】

    JS/jQuery實(shí)現(xiàn)簡單的開關(guān)燈效果【案例】

    這篇文章主要介紹了JS/jQuery實(shí)現(xiàn)簡單的開關(guān)燈效果,結(jié)合具體實(shí)例形式分析了javascript/jQuery事件響應(yīng)及頁面元素屬性動態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-02-02
  • Javascript的異步函數(shù)和Promise對象你了解嗎

    Javascript的異步函數(shù)和Promise對象你了解嗎

    這篇文章主要為大家詳細(xì)介紹了Javascript異步函數(shù)和Promise對象,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • js 獲取html5的data屬性實(shí)現(xiàn)方法

    js 獲取html5的data屬性實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄猨s 獲取html5的data屬性實(shí)現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • dropload.js插件下拉刷新和上拉加載使用詳解

    dropload.js插件下拉刷新和上拉加載使用詳解

    這篇文章主要為大家詳細(xì)介紹了dropload.js插件下拉刷新和上拉加載的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • JavaScript設(shè)計(jì)模式之代理模式詳解

    JavaScript設(shè)計(jì)模式之代理模式詳解

    這篇文章主要為大家詳細(xì)介紹了JavaScript設(shè)計(jì)模式之代理模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • JavaScript用二分法查找數(shù)據(jù)的實(shí)例代碼

    JavaScript用二分法查找數(shù)據(jù)的實(shí)例代碼

    本篇文章主要介紹了JavaScript用二分法查找數(shù)據(jù)的實(shí)例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • js實(shí)現(xiàn)小時鐘效果

    js實(shí)現(xiàn)小時鐘效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)小時鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 微信小程序HTTP接口請求封裝代碼實(shí)例

    微信小程序HTTP接口請求封裝代碼實(shí)例

    這篇文章主要介紹了微信小程序HTTP接口請求封裝代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 淺析javascript中的事件代理

    淺析javascript中的事件代理

    這篇文章主要介紹了淺析javascript中的事件代理,由一道面試題講起,感興趣的小伙伴們可以參考一下
    2015-11-11
  • javascript 動態(tài)生成私有變量訪問器

    javascript 動態(tài)生成私有變量訪問器

    創(chuàng)建一個新的用戶對象,接受一個有許多屬性的對象作為參數(shù)
    2009-12-12

最新評論

柳江县| 裕民县| 商都县| 民和| 乐山市| 策勒县| 博罗县| 民乐县| 岗巴县| 武安市| 塔河县| 亳州市| 嵩明县| 新丰县| 本溪| 万载县| 博客| 亳州市| 天峻县| 阆中市| 中西区| 夏邑县| 怀安县| 平邑县| 四子王旗| 吴旗县| 绥江县| 稷山县| 喀什市| 宝坻区| 昌宁县| 鞍山市| 安国市| 富锦市| 孟村| 嘉善县| 五原县| 沙河市| 南陵县| 崇仁县| 杭锦旗|