溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript中的表達(dá)式是什么

發(fā)布時(shí)間:2022-01-26 16:30:49 來源:億速云 閱讀:126 作者:柒染 欄目:web開發(fā)

今天給大家介紹一下JavaScript中的表達(dá)式是什么。文章的內(nèi)容小編覺得不錯,現(xiàn)在給大家分享一下,覺得有需要的朋友可以了解一下,希望對大家有所幫助,下面跟著小編的思路一起來閱讀吧。

在JavaScript中,表達(dá)式是由數(shù)字、算符、數(shù)字分組符號(括號)、自由變量和約束變量等以能求得數(shù)值的有意義排列方法所得的組合;表達(dá)式可分為兩種:原始表達(dá)式和復(fù)雜表達(dá)式。

本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

  一般地,關(guān)于javascript基礎(chǔ)語法,人們聽得比較多的術(shù)語是操作符和語句。但是,其實(shí)還有一個(gè)術(shù)語經(jīng)常使用,卻很少被提到,這就是javascript表達(dá)式(expression)。本文將詳細(xì)介紹javascript表達(dá)式

什么是表達(dá)式?

表達(dá)式,是由數(shù)字、算符、數(shù)字分組符號(括號)、自由變量和約束變量等以能求得數(shù)值的有意義排列方法所得的組合。約束變量在表達(dá)式中已被指定數(shù)值,而自由變量則可以在表達(dá)式之外另行指定數(shù)值。

javascript表達(dá)式分為原始表達(dá)式和復(fù)雜表達(dá)式

原始表達(dá)式(primary exression)

  原始表達(dá)式是表達(dá)式的最小單位——它不再包含其他表達(dá)式

  原始表達(dá)式分為字面量、關(guān)鍵字和變量;詳細(xì)來說包括this關(guān)鍵字、標(biāo)識符引用、字面量引用、數(shù)組初始化、對象初始化和分組表達(dá)式

PrimaryExpression : 
this Identifier 
Literal 
ArrayLiteral 
ObjectLiteral 
( Expression )

this關(guān)鍵字和標(biāo)識符

this;//返回當(dāng)前對象
i;//返回變量i的值
sum;//返回變量sum的值

字面量

  字面量(literal),又翻譯成直接量,就是程序中直接使用的數(shù)據(jù)值

Literal ::
   NullLiteral
   BooleanLiteral
   NumericLiteral
   StringLiteral 
   RegularExpressionLiteral
null;
undefined;
true;
false;
1;
'abc';
/pattern/;

數(shù)組和對象初始化

  數(shù)組初始化和對象初始化實(shí)際上是一個(gè)以字面量的方式描述的初始化的過程。這兩個(gè)初始化表達(dá)式有時(shí)稱做"對象字面量"和"數(shù)組字面量"

[];
[1,2,3];
{};
{a:1};

分組表達(dá)式

  分組表達(dá)式實(shí)際上就是括號,用于重寫運(yùn)算符的優(yōu)先級

復(fù)雜表達(dá)式(MemberExpression)

  復(fù)雜表達(dá)式由原始表達(dá)式和操作符(operator)組合而成,包括屬性訪問表達(dá)式、對象創(chuàng)建表達(dá)式和函數(shù)表達(dá)式

MemberExpression : 
MemberExpression [ Expression ] 
MemberExpression . IdentifierName 
new MemberExpression Arguments
FunctionExpression

屬性訪問表達(dá)式

  屬性訪問表達(dá)式運(yùn)算可以得到一個(gè)對象屬性或一個(gè)數(shù)組元素的值,javascript為屬性訪問定義了兩種語法

MemberExpression . IdentifierName 
MemberExpression [ Expression ]

  第一種寫法是一個(gè)表達(dá)式后跟隨一個(gè)句點(diǎn)和標(biāo)識符。表達(dá)式指定對象,標(biāo)識符則指定需要訪問的屬性的名稱

  第二種寫法是使用方括號,方括號內(nèi)是另外一個(gè)表達(dá)式(這種方法適用于對象和數(shù)組)。第二個(gè)表達(dá)式指定要訪問的屬性的名稱或代表要訪問數(shù)組元素的索引

var o = {x:1,y:{z:3}}; //對象字面量
var a = [o,4,[5,6]]; // 包含對象的數(shù)組字面量
o.x;//表達(dá)式o的x屬性
o.y.z;//表達(dá)式o.y的z屬性
o['x'];//對象o的x屬性
a[1];//表達(dá)式a中索引為1的元素

  不管使用哪種形式的屬性訪問表達(dá)式,在'.'和'['之前的表達(dá)式總是會首先計(jì)算

  如果計(jì)算結(jié)果是null或undefined,表達(dá)式會拋出一個(gè)類型錯誤異常,因?yàn)檫@兩個(gè)值都不能包含任意屬性

  如果計(jì)算結(jié)果不是對象,javascript會將其轉(zhuǎn)換為對象

  如果對象表達(dá)式后跟隨句點(diǎn)和標(biāo)識符,則會查找由這個(gè)標(biāo)識符指定的屬性值,并將其作為整個(gè)表達(dá)式的值返回

  如果對象表達(dá)式后跟隨一對方括號,則會計(jì)算方括號內(nèi)的表達(dá)式的值并將其轉(zhuǎn)換為字符串

  不論哪種情況,如果命名的屬性不存在,那么整個(gè)屬性訪問表達(dá)式的值就是undefined

對象創(chuàng)建表達(dá)式

  對象創(chuàng)建表達(dá)式創(chuàng)建一個(gè)對象并調(diào)用一個(gè)函數(shù)初始化新對象的屬性

new Object();
new Point(2,3);

  如果一個(gè)對象創(chuàng)建表達(dá)式不需要傳入任何參數(shù)給構(gòu)造函數(shù)的話,那么這對空圓括號是可以省略的

new Object;

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

  函數(shù)表達(dá)式分為函數(shù)定義表達(dá)式和函數(shù)調(diào)用表達(dá)式

  函數(shù)定義表達(dá)式定義一個(gè)javascript函數(shù),表達(dá)式的值是這個(gè)新定義的函數(shù)

  一個(gè)典型的函數(shù)定義表達(dá)式包含關(guān)鍵字function,跟隨其后的是一對圓括號,括號內(nèi)是一個(gè)以逗號分割的列表,列表含有0個(gè)或多個(gè)標(biāo)識符(參數(shù)名),然后再跟隨一個(gè)由花括號包裹的javascript代碼段(函數(shù)體)

function square(x){
    return x*x;
}

  函數(shù)定義表達(dá)式同樣可以包含函數(shù)的名字,函數(shù)也可以通過函數(shù)語句來定義,而不是函數(shù)表達(dá)式

var square = function(x){return x*x;}

  函數(shù)調(diào)用表達(dá)式是一種調(diào)用或執(zhí)行函數(shù)或方法的語法表示。如果這個(gè)表達(dá)式是一個(gè)屬性訪問表達(dá)式,那么這個(gè)調(diào)用稱做方法調(diào)用

f(0);
Math.max(x,y,z);
a.sort();

以上就是JavaScript中的表達(dá)式是什么的全部內(nèi)容了,更多與JavaScript中的表達(dá)式是什么相關(guān)的內(nèi)容可以搜索億速云之前的文章或者瀏覽下面的文章進(jìn)行學(xué)習(xí)哈!相信小編會給大家增添更多知識,希望大家能夠支持一下億速云!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI