検索
ホームページウェブフロントエンドjsチュートリアルJavaScript 参照型の詳細な紹介 (例付き)

この記事では、JavaScript 参照型について詳しく説明します (例とともに)。これには特定の参照価値があります。必要な友人は参照できます。お役に立てば幸いです。

概念: 参照型はデータと関数を一緒に編成するために使用されるデータ構造、つまりクラスです。
オブジェクトは特別な参照型インスタンスです。新しいオブジェクトは、new の後にコンストラクターを追加することで作成されます。
コンストラクター: オブジェクトの作成に使用される関数。
例: var person = new Object();
object は、新しいオブジェクトのデフォルトのプロパティとメソッドを提供するコンストラクターです。

1. オブジェクトの種類

//共通メソッド

var person = new Object();
person.name = "syr";
person.age = 22;

//オブジェクトリテラル

var person = {    
    name : "syr",    
    age : 22,    
    5 : true            //5自动转为"5"
}
* 数值属性名会自动转为字符串;
* 对象字面量推荐只在属性名可读的情况下使用,也是向函数传递大量参数首选方式,必须使用命名参数,对象字面量封装多个可选参数。
* 访问对象一般用点表示法,js中也可以用方括号法,将要访问的属性以字符串的形式放进去。

例:alert(person["name"]) ; // person.name

* 方括号法主要优点是可以通过变量来访问属性。
* 点表示法属性名不能包含错误的自负或者保留字和关键字,但方括号法可以。
* 通常,除非必须使用变量来访问属性,否则推荐使用点表示法。

2 に等しい 配列タイプ:

* 数组:数据的有序列表。

es の配列の各項目は、任意のタイプのデータを保存でき、配列サイズは動的に調整することもできます。

方法一 : new可以省略;
var colors = new Array();
方法二 : 数组字面量
var colors = ["red","blue","green"];

オブジェクトと同様、リテラルは Array コンストラクターを呼び出しません。

var colors = ["red","blue","green"];
colors[0] // 显示第一项
colors[2] = "black"; // 修改第二项
colors[3] = "brown" ; //增加第四项
colors.length = "black" ;  增加一项

length プロパティは配列の長さを返し、配列に項目を追加したり、配列から項目を削除したりできます。

* 检测数组

value instanceof Array // 判断是否为数组
Array.isArray(value) // isArray确定到底是不是数组,不管在哪个环境中创建
* 转换方法

すべてのオブジェクトには toLocalString() メソッドがあります。tostring() がバックグラウンドで呼び出される場合、null および未定義の戻り結果は空の文字列で表されます。

* 栈方法 : 后进先出(吃了吐)

push(): 任意の数のパラメータを受け入れ、末尾に追加します;
pop(): 配列の末尾から項目を削除します。

* 队列方法 : 先进先出(吃了拉);

shift(): フロントエンドは項目を削除して項目を返し、長さが 1 減ります;
unshift(): フロントエンドは項目をプッシュします;

* 重排序方法

reverse(): 逆順;
sort(): 順序;
文字列を比較し、自動的に文字列に変換されます。
たとえば、「10」は「5」の前にあるため、並べ替えに比較関数を渡す必要があります。

function compare(value1,value2){    
    if(value1  value2){        
    return 1;    
    }else{        
    return 0;    
    }
    }
value = [0,1,5,10,15];value.sort(value);  //0,1,5,10,15
* 操作方法

concat() スプライシング: 最初に元の配列のコピーを作成し、最後にパラメータを追加します。元の配列は変更されません。スライス(1,2): カット: パラメータ 1 の開始位置を返します。パラメータ 2 は終了位置です。後ろではなく前を折り返します。元の配列は変更されません。 solice(): 主に配列に項目を挿入します。 (配列操作の最も重要な方法):
-Delete: 任意の数の項目を削除できます。2 つのパラメーターを指定します。arg1 は削除する位置、arg2 は削除する項目の数です。例: splice (0,2): 最初の 2 つの項目を削除します;
-挿入: 3 つのパラメーター。開始位置、削除する項目の数、および挿入する項目。後で複数の項目を挿入できます。例: solice(2,0,"red","green");位置 2 から "red" と "green" を挿入します。
-置換: 上記と同様、挿入される項目の数は同じである必要はありません。削除されたアイテムの数に。
注: splice() は元の配列を変更します;

* 位置方法

indexof(): 最初から検索します
lastIndexof(): 決して検索しません
arg1 は検索対象の項目を表し、arg2は開始点の Position (オプションのパラメーター) です。見つからない場合は -1 が返され、比較時に合同が使用されます。

var number = [1,2,3,4,5,4,3,2,1];
number.indexof(4) ;  //返回5

* 迭代方法

every();
filter();
forEach();
map();

* 归并方法

reduce() : 最初から
reduceRight ; from 末尾の
は、配列内のすべての項目を反復処理し、最終的な戻り項目を構築します。

3. 日付の型

var now = new Data();
date.parse("May 25,2004"); // 新建特定日期
* 继承: 重写了3个方法

toLocalString(): ブラウザ設定の日付;
toString();
valueof();

* 日期格式化方法:

-toDateString( ) : 週、月、日、年を特定の形式で表示;
-toTimeString(): 時、分、秒、タイムゾーン;
toLocalDateString(): 週、月、日、年を表示地域別;
toLocalTimeString() : 時、分、秒;
toUTCString() : 完全な UTC 日付を特定の形式で表示しますが、具体的な表示はブラウザによって異なります。

4. RegExp タイプ: 正規表現;

var expression = /pattern/flags;
标志flags包括 :
g : 全局;
i : 不区分大小写;
m : 多行模式;
例子 : var pattern = /at/g 全局找at
var pattern = /[bc]at/i ; 匹配第一个bat或cat,不区分大小写。
无意符须转义;
* RegExp实例方法:

RegExp のメイン メソッドは
-exec(): キャプチャ グループ、パラメータは文字列、配列があれば返します一致しない場合は null を返し、index と input という 2 つの追加プロパティを返します。
index: 位置入力: キャプチャされた文字列
-test(): 一致した場合は true を返し、一般にユーザー入力を検証するために使用されます。

5. 関数の型

* 概念

関数は実際にはオブジェクトです。他の参照型と同様に、プロパティとメソッドがあります。関数名はオブジェクトへの単なるポインターです。

* 没有重载

同じ関数を宣言すると、後者の関数が前の関数を上書きします。

* 函数声明和函数表达式
function sum(){    }    // 函数声明
var sum = function(){    }      // 函数表达式函数声明可以变量提升,任何时候任何位置都可以调用。
* 作为值的函数

関数をパラメータとして別の関数に渡します。関数を実行せずに関数にアクセスするには、関数名の後の括弧のペアを削除する必要があります
// ある関数から別の関数に関数を返す
// オブジェクト配列に従って並べ替えます
function Compare(pro){

return function(obj1,obj2){        
var val1 = obj1[pro];        
var val2 = obj2[pro];        
if(val1 > val2){            
return 1;        
}else if(val1 <p> には 2 つの特別なオブジェクトが含まれます: this と argument<br>-argument: には、渡されるすべてのパラメーターが含まれます。 callee 属性はポインターであり、このオブジェクトの関数を所有したいだけです。 <br>// 階乗を計算する再帰的アルゴリズム <br>function fac(num){</p><pre class="brush:php;toolbar:false">if(num <p>Function はオブジェクトでもあるため、プロパティとメソッドがあります。</p><pre class="brush:php;toolbar:false">* -属性 : length 和 prototype

-length は次のことを示します。名前付きパラメータ番号を受け取りたいとします。
-プロトタイプは、tostring()、valueOf などのすべてのフォースとメソッドが保存される実際の場所であり、継承にも使用できますが、これは非常に重要です。
プロトタイプ属性は列挙可能ではないため、for-in は使用できません。

* -方法 : 非继承而来的方法有两个: apply() 和 call().

この関数は、特定のスコープで関数を呼び出すためのもので、実際には関数本体にこのオブジェクトの値を設定します。 2 つのメソッドは機能は同じですが、パラメータの受け取り方法が異なります。 call(): パラメータを 1 つずつ列挙する
apply(): パラメータは配列 どちらもパラメータを渡すだけでなく、関数のスコープを拡張する機能もあります。立ち入り禁止の場所を通過します。
bind(): メソッド。関数インスタンスを作成し、この値 (グローバル スコープ) にバインドします。

6、基本包装类型 (也是对象)

为方便操作基本类型值,提供3个特殊引用类型:Boolean,Number和String.
每读取值后台都会创建对应的基本包装类型的对象,才可以用方法操作数据。
引用类型与基本包装类型主要区别为对象生存期,用new创建引用累心实例一直保存在内存中,自动创建基本包装类型存在执行瞬间,然后立即销毁,所以不能给基本类型添加属性和方法。

* Boolean 类型

typeof 基本类型 // ‘boolean’typeof 引用类型 //  'object'建议永不要使用Boolean对象

* Number 类型

toFixed()方法 : 按照指定方法返回数值的字符串表示。
var num = 10;num.tpFixed(2) // '10.00'
toExpoential() : 幂

* String 类型

属性:length : 表示含多少个字符方法:
1)字符方法:charAt()和charCodeAt():查找某个字符在字符串中的位置。    charCodeAt():查找字符编码
2)字符串操作方法:拼接用+号
-三个给予字符串创建新串:
slice():切片             // 第一个参数为起始位置,第二个参数为结束位置substr():子函数       // 第一个参数为起始位置,第二个参数为截取的个数substring():子串     // 第一个参数为起始位置,第二个参数为结束位置
以上方法都不会影响原始字符串
3)字符串位置方法:
indexof:从字符串中查找字符串,返回位置,查不到则返回-1.
indexOf:从头查找lastIndexOf:从尾查找  返回第一次出现的位置
4)trim:创建字符串副本,删除前后所有空格,原始字符串不变。
5)字符串大小写转变:
toLocalUpperCase():转大写,针对特定地区
toLocalLowerCase():转小写,针对特定地区
toUpperCase():转大写
toLowerCase():转小写
6)字符串模式匹配方法:
match():与RegExp的exec方法相同,参数为正则表达式活RegExp对象。
search():从尾开始查找,参数与match相同,找不到返回-1
replace():替换
split():切片,基于指定分隔符字符串为多个子字符串。第二个参数可选,返回几个数组。

7、单体内置对象

已自行实例化,可直接使用,Global和Math

* -Global对象,全局对象:所有全局作用域中属性和方法都是它的。

--url编码
--eval():解析字符串代码并执行

* -Math对象

--Math.ceil():向上取整。
--Math.floor():向下取整。
--Math.round():四舍五入。

* random()方法:随机数,返回0~1之间随机数。

本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的JavaScript视频教程栏目!

以上がJavaScript 参照型の詳細な紹介 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
JavaScriptの進化:現在の傾向と将来の見通しJavaScriptの進化:現在の傾向と将来の見通しApr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

javascriptの分解:それが何をするのか、なぜそれが重要なのかjavascriptの分解:それが何をするのか、なぜそれが重要なのかApr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

pythonまたはjavascriptの方がいいですか?pythonまたはjavascriptの方がいいですか?Apr 06, 2025 am 12:14 AM

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

JavaScriptをインストールするにはどうすればよいですか?JavaScriptをインストールするにはどうすればよいですか?Apr 05, 2025 am 12:16 AM

JavaScriptは、最新のブラウザにすでに組み込まれているため、インストールを必要としません。開始するには、テキストエディターとブラウザのみが必要です。 1)ブラウザ環境では、タグを介してHTMLファイルを埋め込んで実行します。 2)node.js環境では、node.jsをダウンロードしてインストールした後、コマンドラインを介してJavaScriptファイルを実行します。

クォーツでタスクが開始される前に通知を送信する方法は?クォーツでタスクが開始される前に通知を送信する方法は?Apr 04, 2025 pm 09:24 PM

Quartzタイマーを使用してタスクをスケジュールする場合、Quartzでタスク通知を事前に送信する方法、タスクの実行時間はCron式によって設定されます。今...

JavaScriptでは、コンストラクターのプロトタイプチェーンで関数のパラメーターを取得する方法は?JavaScriptでは、コンストラクターのプロトタイプチェーンで関数のパラメーターを取得する方法は?Apr 04, 2025 pm 09:21 PM

JavaScriptプログラミング、プロトタイプチェーンの関数パラメーターの理解と操作のJavaScriptのプロトタイプチェーンの関数のパラメーターを取得する方法は、一般的で重要なタスクです...

WeChat MiniプログラムWebViewでVUE.JSダイナミックスタイルの変位が失敗した理由は何ですか?WeChat MiniプログラムWebViewでVUE.JSダイナミックスタイルの変位が失敗した理由は何ですか?Apr 04, 2025 pm 09:18 PM

WeChatアプレットWeb-ViewでVue.jsを使用する動的スタイルの変位障害がvue.jsを使用している理由の分析...

TamperMonkeyで複数のリンクの同時GETリクエストを実装し、順番に戻る結果を決定する方法は?TamperMonkeyで複数のリンクの同時GETリクエストを実装し、順番に戻る結果を決定する方法は?Apr 04, 2025 pm 09:15 PM

複数のリンクの同時ゲットリクエストを作成し、結果を返すために順番に判断する方法は? TamperMonkeyスクリプトでは、複数のチェーンを使用する必要があることがよくあります...

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。