ecmascript是直譯器嗎

2022-01-05 13:00:35

ecmascript是直譯器。ecmascript是一種由Ecma國際通過ECMA-262標準化的指令碼程式設計語言,是直譯器,負責翻譯,是js語言核心部分,描述了js語言的語法和基本物件。

本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

一個完整的 JavaScript 實現由以下 3 個不同部分組成:

  • 核心(ECMAScript):語言核心部分,描述了該語言的語法和基本物件。

  • 檔案物件模型(Document Object Model,DOM):網頁檔案操作標準,描述處理網頁內容的方法和介面。

  • 瀏覽器物件模型(BOM):使用者端和瀏覽器視窗操作基礎,描述與瀏覽器進行互動的方法和介面。

ECMAScript(es):負責翻譯,為js的核心,直譯器。

由ECMA-262定義的ECMAScript是一種在國際認可的標準的指令碼語言規範,與Web瀏覽器沒有依賴關係。ECMA-262標準主要規定了這門語言由以下組成部分:

  • 語法

  • 變數和資料型別

  • 關鍵字和保留字

  • 操作符

  • 控制語句

  • 物件

2009年ECMAScript 5.0版正式釋出。在很長一段時間,使用javaScript都是按照5.0的標準。2015年ECMAScript 6釋出正式版本,官方稱為ECMAScript 2015。ECMAScript定義了指令碼語言的所有屬性、方法和物件。因此抵用web使用者端指令碼編碼時一定要遵循ECMAScript標準。

JS資料型別

5種基本資料型別:Undefined、Null、Boolean、Number、String,Symbol(es6新增)

1種複雜型別:object

5種參照型別:Array,Object,Function,Date,RegExp

3種基本包裝型別:Boolean,Number,String

2種單體內建物件:Global,Math

1、四種方式判斷資料型別

typeof

const a = ""
console.log(typeof(a)) => String
 
const b = 1
console.log(typeof(b)) => Number
 
const c
console.log(typeof(c)) =>Undefined
 
const d = []
console.log(typeof(d)) => Object
 
const e = {}
console.log(typeof(e)) =>Object
 
const f = null
console.log(typeof(f)) =>Object  //null 作為尚未建立的物件

instanceof

這種方式只適合判斷object型別

const arr = [] 
console.log(arr instanceof Array)=> true
 
console.log(null instanceof Object) ---> false
 
console.log([function] instanceof Object | Function)  --> true

Object.prototype.toString.call()

這種方式可以將全部的資料型別檢測出來 推薦使用。因為toString是Object的原型方法, 而 Array Function 等都是Object的範例。都重寫了toString 方法。返回的是型別的字串

Object.prototype.toString.call(null)  =>  [object Null]
 
Object.prototype.toString.call(Math) => [object Math]
 
Object.prototype.toString.call(function(){}) => [object Function]
 
Objdec.prototype.toString.call(new Date)  => [object Date]
 
Object.prototype.toString.call(Symbol())  => [object Symbol]
 
Object.prototupe.toString.call(undefined)  => [object Undefined]
 
Object.prototype.toString.call(123)  => [object Number]
 
Object.prototype.toString.call(true) => [object Boolean]
 
Object.prototype.toString.call('123') => [object String]
 
Object.prototype.toString.call({})    => [object Object]
 
Object.prototype.toString.call([])    => [object Array]

constructor

判斷物件的建構函式。

1. null 是js 原型鏈的起點,沒有建構函式

2. undefined 沒有建構函式

3. [].constructor === Array ---> true

【相關推薦:

以上就是ecmascript是直譯器嗎的詳細內容,更多請關注TW511.COM其它相關文章!