ホームページ ウェブフロントエンド jsチュートリアル JavaScriptのrequire、import、exportの詳細説明

JavaScriptのrequire、import、exportの詳細説明

Sep 25, 2017 am 09:48 AM
import javascript require

この記事では、JavaScript の require、import、export に関する関連情報をサンプル コードを通じて詳しく紹介します。勉強している人や仕事をしている人にとっては、参考になるでしょう。以下に来て私と一緒に学びましょう。

はじめに

この記事では主に JavaScript の require、import、export に関する関連コンテンツを紹介し、参考と学習のために共有します。以下では多くを説明しません。詳しい紹介。

なぜモジュールの概念があるのですか?

理想的には、開発者はコア ビジネス ロジックを実装するだけでよく、他の人は他の人が書いたモジュールをロードできます。

ただし、JavaScript はモジュール型プログラミング言語ではありません。es6 より前は「クラス」をサポートしていなかったので、「モジュール」は存在しませんでした。

時代が必要

Javascript コミュニティは、既存の実行環境で「モジュール」の効果を実現するために多大な努力を払ってきました。

原文

モジュールとは、特定の機能を実装するためのメソッドのセットです。
さまざまな関数 (および状態を記録する変数) を単純に組み合わせる限り、それはモジュールになります。


function m1(){
 //...
}
function m2(){
 //...  
}
ログイン後にコピー

上記の関数 m1()m2() はモジュールを形成します。使用する場合は直接呼び出してください。 m1()m2() ,组成一个模块。使用的时候,直接调用就行了。

这种做法的缺点很明显:”污染”了全局变量,无法保证不与其他模块发生变量名冲突,而且模块成员之间看不出直接关系。

对象写法

为了解决上面的缺点,可以把模块写成一个对象,所有的模块成员都放到这个对象里面


var module1 = new Object({
_count : 0,
 m1 : function (){
  //...
 },
 m2 : function (){
  //...
 }
});
ログイン後にコピー

上面的函数m1()m2() ,都封装在module1对象里。使用的时候,就是调用这个对象的属性


module1.m1();
ログイン後にコピー

这样的写法会暴露所有模块成员,内部状态可以被外部改写。比如,外部代码可以直接改变内部计数器的值。


module._count = 1;
ログイン後にコピー

立即执行函数写法

使用”立即执行函数”(Immediately-Invoked Function Expression,IIFE),可以达到不暴露私有成员的目的


var module = (function() {
var _count = 0;
var m1 = function() {
alert(_count)
}
var m2 = function() {
alert(_count + 1)
}
 
return {
m1: m1,
m2: m2
}
})()
ログイン後にコピー

使用上面的写法,外部代码无法读取内部的_count变量。


  console.info(module._count); //undefined
ログイン後にコピー

module就是Javascript模块的基本写法。

主流模块规范

在es6以前,还没有提出一套官方的规范,从社区和框架推广程度而言,目前通行的javascript模块规范有两种:CommonJS 和 AMD

CommonJS规范

2009年,美国程序员Ryan Dahl创造了node.js项目,将javascript语言用于服务器端编程。

这标志”Javascript模块化编程”正式诞生。前端的复杂程度有限,没有模块也是可以的,但是在服务器端,一定要有模块,与操作系统和其他应用程序互动,否则根本没法编程。

node编程中最重要的思想之一就是模块,而正是这个思想,让JavaScript的大规模工程成为可能。模块化编程在js界流行,也是基于此,随后在浏览器端,requirejs和seajs之类的工具包也出现了,可以说在对应规范下,require统治了ES6之前的所有模块化编程,即使现在,在ES6 module被完全实现之前,还是这样。

在CommonJS中,暴露模块使用module.exports和exports,很多人不明白暴露对象为什么会有两个,后面会介绍区别

在CommonJS中,有一个全局性方法require()

このアプローチの欠点は明らかです。グローバル変数を「汚染」し、変数名が他のモジュールと競合しないという保証がなく、モジュールのメンバー間に直接の関係がありません。


オブジェクトの記述方法

上記の欠点を解決するために、モジュールをオブジェクトとして記述し、すべてのモジュールメンバーをこのオブジェクトに配置することができます

var math = require('math');
ログイン後にコピー

上記の関数m1() m2() は両方とも module1 オブジェクトにカプセル化されます。使用する場合は、このオブジェクトのプロパティを呼び出すことになります

 var math = require('math');
 math.add(2,3); // 5
ログイン後にコピー
この書き方ではモジュールのメンバーがすべて公開され、内部状態を外部から書き換えることができます。たとえば、外部コードは内部カウンターの値を直接変更できます。

var math = require('math');
math.add(2, 3);
ログイン後にコピー
ログイン後にコピー

即時実行関数の記述方法

🎜プライベートメンバーを公開しないという目的を達成するには「即時実行関数式 IIFE」を使用します🎜🎜🎜🎜
define(id?, dependencies?, factory)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
🎜上記の記述方法を使用し、外部のコードでは実行できません内部の _count 変数を読み取ります。 🎜🎜🎜🎜
// math.js
  define(function (){
    var add = function (x,y){
      return x+y;
    };
    return {
      add: add
    };
  });
ログイン後にコピー
ログイン後にコピー
🎜module は、JavaScript モジュールを記述する基本的な方法です。 🎜🎜🎜🎜主流のモジュール仕様🎜🎜🎜🎜 es6 より前には、コミュニティとフレームワークの推進の観点から、公式の仕様セットはありませんでしたが、現在、CommonJS と AMD🎜🎜CommonJS 仕様の 2 つの人気のある JavaScript モジュール仕様があります。 🎜🎜🎜 2009 年にアメリカのプログラマー Ryan Dahl がノードを作成しました.js プロジェクト。サーバー側プログラミングに JavaScript 言語を使用します。 🎜🎜これにより、「JavaScript モジュール型プログラミング」が正式に誕生しました。フロントエンドの複雑さは制限されており、モジュールなしでも可能ですが、サーバー側では、オペレーティング システムや他のアプリケーションと対話するためのモジュールが必要です。そうしないと、プログラミングがまったく不可能になります。 🎜🎜 ノード プログラミングで最も重要なアイデアの 1 つはモジュールであり、このアイデアによって大規模な JavaScript プロジェクトが可能になります。 jsの世界ではモジュラープログラミングが流行しており、その後ブラウザ側でもrequirejsやseajsなどのツールキットが登場し、ES6以前のモジュラープログラミングはrequireが主流になったと言えます。 、現在でも、ES6 モジュールが完全に実装されるまではこれが当てはまります。 🎜🎜 CommonJS では、公開モジュールは module.exports とエクスポートを使用します。なぜ 2 つの公開オブジェクトがあるのか​​理解していない人が多いです。その違いについては後で紹介します🎜🎜 CommonJS にはグローバル メソッドがあります。 < code>require() は、モジュールをロードするために使用されます。数学モジュール math.js があると仮定すると、次のようにロードできます。 🎜🎜🎜🎜
define([&#39;Lib&#39;], function(Lib){
    function foo(){
      Lib.doSomething();
    }
    return {
      foo : foo
    };
  });
ログイン後にコピー
ログイン後にコピー
🎜その後、モジュールによって提供されるメソッドを呼び出すことができます: 🎜🎜🎜🎜
require([module], callback);
ログイン後にコピー
ログイン後にコピー
🎜 CommonJS で使用される require メソッドのおかげで、後の AMD と CMD もモジュールを参照するために require メソッドを使用します。スタイル🎜🎜🎜AMD仕様🎜🎜🎜🎜🎜🎜サーバーサイドモジュールがあると、誰もがクライアントサイドモジュールを欲しがるのは当然です。そして、この 2 つに互換性があり、モジュールを変更せずにサーバーとブラウザの両方で実行できることが最善です。 🎜🎜ただし、大きな制限があるため、CommonJS 仕様はブラウザ環境には適していません。前のセクションのコードをそのままブラウザで実行すると、大きな問題が発生します🎜🎜🎜🎜
var math = require(&#39;math&#39;);
math.add(2, 3);
ログイン後にコピー
ログイン後にコピー

第二行math.add(2, 3) ,在第一行require(‘math&#39;)之后运行,因此必须等math.js加载完成。也就是说,如果加载时间很长,整个应用就会停在那里等。

这对服务器端不是一个问题,因为所有的模块都存放在本地硬盘,可以同步加载完成,等待时间就是硬盘的读取时间。但是,对于浏览器,这却是一个大问题,因为模块都放在服务器端,等待时间取决于网速的快慢,可能要等很长时间,浏览器处于”假死”状态。

因此,浏览器端的模块,不能采用”同步加载”(synchronous),只能采用”异步加载”(asynchronous)。这就是AMD规范诞生的背景。

AMD是”Asynchronous Module Definition”的缩写,意思就是”异步模块定义”。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。

模块必须采用特定的define()函数来定义。


define(id?, dependencies?, factory)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  • id:字符串,模块名称(可选)

  • dependencies: 是我们要载入的依赖模块(可选),使用相对路径。,注意是数组格式

  • factory: 工厂方法,返回一个模块函数

如果一个模块不依赖其他模块,那么可以直接定义在define()函数之中。


// math.js
  define(function (){
    var add = function (x,y){
      return x+y;
    };
    return {
      add: add
    };
  });
ログイン後にコピー
ログイン後にコピー

如果这个模块还依赖其他模块,那么define()函数的第一个参数,必须是一个数组,指明该模块的依赖性。


define([&#39;Lib&#39;], function(Lib){
    function foo(){
      Lib.doSomething();
    }
    return {
      foo : foo
    };
  });
ログイン後にコピー
ログイン後にコピー

require()函数加载上面这个模块的时候,就会先加载Lib.js文件。

AMD也采用require()语句加载模块,但是不同于CommonJS,它要求两个参数:


require([module], callback);
ログイン後にコピー
ログイン後にコピー

第一个参数[module],是一个数组,里面的成员就是要加载的模块;第二个参数callback,则是加载成功之后的回调函数。如果将前面的代码改写成AMD形式,就是下面这样:


require([&#39;math&#39;], function (math) {
 math.add(2, 3);
});
ログイン後にコピー

math.add()与math模块加载不是同步的,浏览器不会发生假死。所以很显然,AMD比较适合浏览器环境。

目前,主要有两个Javascript库实现了AMD规范:require.js和curl.js。

CMD规范

CMD (Common Module Definition), 是seajs推崇的规范,CMD则是依赖就近,用的时候再require。它写起来是这样的:


define(function(require, exports, module) {
var clock = require(&#39;clock&#39;);
clock.start();
});
ログイン後にコピー

CMD与AMD一样,也是采用特定的define()函数来定义,用require方式来引用模块


define(id?, dependencies?, factory)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  • id:字符串,模块名称(可选)

  • dependencies: 是我们要载入的依赖模块(可选),使用相对路径。,注意是数组格式

  • factory: 工厂方法,返回一个模块函数


define(&#39;hello&#39;, [&#39;jquery&#39;], function(require, exports, module) {
 
// 模块代码
 
});
ログイン後にコピー

如果一个模块不依赖其他模块,那么可以直接定义在define()函数之中。


define(function(require, exports, module) {
// 模块代码
});
ログイン後にコピー

注意:带 id 和 dependencies 参数的 define 用法不属于 CMD 规范,而属于 Modules/Transport 规范。

CMD与AMD区别

AMD和CMD最大的区别是对依赖模块的执行时机处理不同,而不是加载的时机或者方式不同,二者皆为异步加载模块。

AMD依赖前置,js可以方便知道依赖模块是谁,立即加载;

而CMD就近依赖,需要使用把模块变为字符串解析一遍才知道依赖了那些模块,这也是很多人诟病CMD的一点,牺牲性能来带来开发的便利性,实际上解析模块用的时间短到可以忽略。

现阶段的标准

ES6标准发布后,module成为标准,标准使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们依然采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口。

export导出模块

export语法声明用于导出函数、对象、指定文件(或模块)的原始值。

注意:在node中使用的是exports,不要混淆了

export有两种模块导出方式:命名式导出(名称导出)和默认导出(定义式导出),命名式导出每个模块可以多个,而默认导出每个模块仅一个。


export { name1, name2, …, nameN };
export { variable1 as name1, variable2 as name2, …, nameN };
export let name1, name2, …, nameN; // also var
export let name1 = …, name2 = …, …, nameN; // also var, const
 
export default expression;
export default function (…) { … } // also class, function*
export default function name1(…) { … } // also class, function*
export { name1 as default, … };
 
export * from …;
export { name1, name2, …, nameN } from …;
export { import1 as name1, import2 as name2, …, nameN } from …;
ログイン後にコピー
  • name1… nameN-导出的“标识符”。导出后,可以通过这个“标识符”在另一个模块中使用import引用

  • default-设置模块的默认导出。设置后import不通过“标识符”而直接引用默认导入

  • -继承模块并导出继承模块所有的方法和属性

  • as-重命名导出“标识符”

  • from-从已经存在的模块、脚本文件…导出

命名式导出

模块可以通过export前缀关键词声明导出对象,导出对象可以是多个。这些导出对象用名称进行区分,称之为命名式导出。


export { myFunction }; // 导出一个已定义的函数
export const foo = Math.sqrt(2); // 导出一个常量
ログイン後にコピー

我们可以使用*和from关键字来实现的模块的继承:


export * from &#39;article&#39;;
ログイン後にコピー

模块导出时,可以指定模块的导出成员。导出成员可以认为是类中的公有对象,而非导出成员可以认为是类中的私有对象:


var name = &#39;IT笔录&#39;;
var domain = &#39;http://itbilu.com&#39;;
 
export {name, domain}; // 相当于导出
{name:name,domain:domain}
ログイン後にコピー

模块导出时,我们可以使用as关键字对导出成员进行重命名:


var name = &#39;IT笔录&#39;;
var domain = &#39;http://itbilu.com&#39;;
 
export {name as siteName, domain};
ログイン後にコピー

注意:下面的语法有严重错误的情况:


// 错误演示
export 1; // 绝对不可以
 
var a = 100;
export a;
ログイン後にコピー

export在导出接口的时候,必须与模块内部的变量具有一一对应的关系。直接导出1没有任何意义,也不可能在import的时候有一个变量与之对应

export a虽然看上去成立,但是a的值是一个数字,根本无法完成解构,因此必须写成export {a}的形式。即使a被赋值为一个function,也是不允许的。而且,大部分风格都建议,模块中最好在末尾用一个export导出所有的接口,例如:


export {fun as default,a,b,c};
ログイン後にコピー

默认导出

默认导出也被称做定义式导出。命名式导出可以导出多个值,但在在import引用时,也要使用相同的名称来引用相应的值。而默认导出每个导出只有一个单一值,这个输出可以是一个函数、类或其它类型的值,这样在模块import导入时也会很容易引用。


export default function() {}; // 可以导出一个函数
export default class(){}; // 也可以出一个类
ログイン後にコピー

命名式导出与默认导出

默认导出可以理解为另一种形式的命名导出,默认导出可以认为是使用了default名称的命名导出。

下面两种导出方式是等价的:


const D = 123;
 
export default D;
export { D as default };
ログイン後にコピー

export使用示例

使用名称导出一个模块时:


// "my-module.js" 模块
export function cube(x) {
return x * x * x;
}
const foo = Math.PI + Math.SQRT2;
export { foo };
ログイン後にコピー

在另一个模块(脚本文件)中,我们可以像下面这样引用:


import { cube, foo } from &#39;my-module&#39;;
console.log(cube(3)); // 27
console.log(foo); // 4.555806215962888
ログイン後にコピー

使用默认导出一个模块时:


// "my-module.js"模块
export default function (x) {
return x * x * x;
}
ログイン後にコピー

在另一个模块(脚本文件)中,我们可以像下面这样引用,相对名称导出来说使用更为简单:


// 引用 "my-module.js"模块
import cube from &#39;my-module&#39;;
console.log(cube(3)); // 27
ログイン後にコピー

import引入模块

import语法声明用于从已导出的模块、脚本中导入函数、对象、指定文件(或模块)的原始值。

import模块导入与export模块导出功能相对应,也存在两种模块导入方式:命名式导入(名称导入)和默认导入(定义式导入)。

import的语法跟require不同,而且import必须放在文件的最开始,且前面不允许有其他逻辑代码,这和其他所有编程语言风格一致。


import defaultMember from "module-name";
import * as name from "module-name";
import { member } from "module-name";
import { member as alias } from "module-name";
import { member1 , member2 } from "module-name";
import { member1 , member2 as alias2 , [...] } from "module-name";
import defaultMember, { member [ , [...] ] } from "module-name";
import defaultMember, * as name from "module-name";
import "module-name";
ログイン後にコピー
  • name-从将要导入模块中收到的导出值的名称

  • member, memberN-从导出模块,导入指定名称的多个成员

  • defaultMember-从导出模块,导入默认导出成员

  • alias, aliasN-别名,对指定导入成员进行的重命名

  • module-name-要导入的模块。是一个文件名

  • as-重命名导入成员名称(“标识符”)

  • from-从已经存在的模块、脚本文件等导入

命名式导入

我们可以通过指定名称,就是将这些成员插入到当作用域中。导出时,可以导入单个成员或多个成员:

注意:花括号里面的变量与export后面的变量一一对应


import {myMember} from "my-module";
import {foo, bar} from "my-module";
ログイン後にコピー

通过*符号,我们可以导入模块中的全部属性和方法。当导入模块全部导出内容时,就是将导出模块('my-module.js')所有的导出绑定内容,插入到当前模块('myModule')的作用域中:


import * as myModule from "my-module";
ログイン後にコピー

导入模块对象时,也可以使用as对导入成员重命名,以方便在当前模块内使用:


import {reallyReallyLongModuleMemberName as shortName} from "my-module";
ログイン後にコピー

导入多个成员时,同样可以使用别名:


import {reallyReallyLongModuleMemberName as shortName, anotherLongModuleName as short} from "my-module";
ログイン後にコピー

导入一个模块,但不进行任何绑定:


import "my-module";
ログイン後にコピー

默认导入

在模块导出时,可能会存在默认导出。同样的,在导入时可以使用import指令导出这些默认值。

直接导入默认值:


import myDefault from "my-module";
ログイン後にコピー

也可以在命名空间导入和名称导入中,同时使用默认导入:


import myDefault, * as myModule from "my-module"; // myModule 做为命名空间使用
ログイン後にコピー



import myDefault, {foo, bar} from "my-module"; // 指定成员导入
ログイン後にコピー

import使用示例


// --file.js--
function getJSON(url, callback) {
let xhr = new XMLHttpRequest();
xhr.onload = function () {
callback(this.responseText)
};
xhr.open("GET", url, true);
xhr.send();
}
 
export function getUsefulContents(url, callback) {
getJSON(url, data => callback(JSON.parse(data)));
}
 
// --main.js--
import { getUsefulContents } from "file";
getUsefulContents("http://itbilu.com", data => {
doSomethingUseful(data);
});
ログイン後にコピー

default关键字


// d.js
export default function() {}
 
// 等效于:
function a() {};
export {a as default};
ログイン後にコピー

在import的时候,可以这样用:


import a from &#39;./d&#39;;
 
// 等效于,或者说就是下面这种写法的简写,是同一个意思
import {default as a} from &#39;./d&#39;;
ログイン後にコピー

这个语法糖的好处就是import的时候,可以省去花括号{}。

简单的说,如果import的时候,你发现某个变量没有花括号括起来(没有*号),那么你在脑海中应该把它还原成有花括号的as语法。

所以,下面这种写法你也应该理解了吧:


import $,{each,map} from &#39;jquery&#39;;
ログイン後にコピー

import后面第一个$是{defalut as $}的替代写法。

as关键字

as简单的说就是取一个别名,export中可以用,import中其实可以用:


// a.js
var a = function() {};
export {a as fun};
 
// b.js
import {fun as a} from &#39;./a&#39;;
a();
ログイン後にコピー

上面这段代码,export的时候,对外提供的接口是fun,它是a.js内部a这个函数的别名,但是在模块外面,认不到a,只能认到fun。

import中的as就很简单,就是你在使用模块里面的方法的时候,给这个方法取一个别名,好在当前的文件里面使用。之所以是这样,是因为有的时候不同的两个模块可能通过相同的接口,比如有一个c.js也通过了fun这个接口:


// c.js
export function fun() {};
ログイン後にコピー

如果在b.js中同时使用a和c这两个模块,就必须想办法解决接口重名的问题,as就解决了。

CommonJS中module.exports 与 exports的区别

Module.exports

The module.exports object is created by the Module system. Sometimes this is not acceptable; many want their module to be an instance of some class. To do this, assign the desired export object to module.exports. Note that assigning the desired object to exports will simply rebind the local exports variable, which is probably not what you want to do.

译文:module.exports对象是由模块系统创建的。 有时这是难以接受的;许多人希望他们的模块成为某个类的实例。 为了实现这个,需要将期望导出的对象赋值给module.exports。 注意,将期望的对象赋值给exports会简单地重新绑定到本地exports变量上,这可能不是你想要的。

Module.exports

The exports variable is available within a module's file-level scope, and is assigned the value of module.exports before the module is evaluated. It allows a shortcut, so that module.exports.f = … can be written more succinctly as exports.f = …. However, be aware that like any variable, if a new value is assigned to exports, it is no longer bound to module.exports:

译文:exports变量是在模块的文件级别作用域内有效的,它在模块被执行前被赋于 module.exports 的值。它有一个快捷方式,以便 module.exports.f = … 可以被更简洁地写成exports.f = … 。 注意,就像任何变量,如果一个新的值被赋值给exports,它就不再绑定到module.exports(其实是exports.属性会自动挂载到没有命名冲突的module.exports.属性)

从Api文档上面的可以看出,从require导入方式去理解,关键有两个变量(全局变量module.exports,局部变量exports)、一个返回值(module.exports)


function require(...) {
var module = { exports: {} };
((module, exports) => {
// 你的被引入代码 Start
// var exports = module.exports = {}; (默认都有的)
function some_func() {};
exports = some_func;
// 此时,exports不再挂载到module.exports,
// export将导出{}默认对象
module.exports = some_func;
// 此时,这个模块将导出some_func对象,覆盖exports上的some_func
// 你的被引入代码 End
})(module, module.exports);
// 不管是exports还是module.exports,最后返回的还是module.exports
return module.exports;
}
ログイン後にコピー

demo.js:


console.log(exports); // {}
console.log(module.exports); // {}
console.log(exports === module.exports); // true
console.log(exports == module.exports); // true
console.log(module);
/**
Module {
id: &#39;.&#39;,
exports: {},
parent: null,
filename: &#39;/Users/larben/Desktop/demo.js&#39;,
loaded: false,
children: [],
paths:
[ &#39;/Users/larben/Desktop/node_modules&#39;,
&#39;/Users/larben/node_modules&#39;,
&#39;/Users/node_modules&#39;,
&#39;/node_modules&#39; ] }
*/
ログイン後にコピー

注意

每个js文件一创建,都有一个var exports = module.exports = {} , 使exports和module.exports都指向一个空对象。

module.exports和exports所指向的内存地址相同

总结

以上がJavaScriptのrequire、import、exportの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

require の用途は何ですか? require の用途は何ですか? Nov 27, 2023 am 10:03 AM

require の使用法: 1. モジュールの導入: 多くのプログラミング言語では、require は外部モジュールまたはライブラリを導入し、それらが提供する関数をプログラム内で使用できるようにするために使用されます。たとえば、Ruby では、require を使用してサードパーティのライブラリまたはモジュールをロードできます。 2. クラスまたはメソッドのインポート: 一部のプログラミング言語では、require を使用して特定のクラスまたはメソッドをインポートし、現在のファイルで使用できるようにします。 ; 3. 特定のタスクを実行する: 一部のプログラミング言語またはフレームワークでは、特定のタスクまたは関数を実行するために require が使用されます。

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScriptでinsertBeforeを使用する方法 JavaScriptでinsertBeforeを使用する方法 Nov 24, 2023 am 11:56 AM

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

See all articles