javascript
JavaScript类型·对象·函数
ECMAScript是一種由Ecma國(guó)際通過ECMA-262標(biāo)準(zhǔn)化的腳本程序設(shè)計(jì)語言,它往往被稱為JavaScript或JScript,但實(shí)際上后兩者是ECMA-262標(biāo)準(zhǔn)的實(shí)現(xiàn)和擴(kuò)展。
ECMAScript對(duì)象
定義為“屬性的無序集合,每個(gè)屬性存放一個(gè)原始值、對(duì)象或函數(shù)”
- 對(duì)象由特性attribute構(gòu)成,特性可以是原始值,也可以是引用值。如果特性存放的是函數(shù),它將被看作對(duì)象的方法method,否則該特性被看作對(duì)象的屬性property。
- ECMAScript中的所有對(duì)象的所有屬性和方法都是公用的。
ECMAScript對(duì)象類型
- 本地對(duì)象:獨(dú)立于宿主環(huán)境的ECMAScript實(shí)現(xiàn)提供的對(duì)象,即引用類型。
- 內(nèi)置對(duì)象:由ECMAScript實(shí)現(xiàn)提供的、獨(dú)立于宿主環(huán)境的所有對(duì)象,在ECMAScript程序開始執(zhí)行時(shí)出現(xiàn)的,即Global和Math,每個(gè)內(nèi)置對(duì)象都是本地對(duì)象。
- 宿主對(duì)象:所有非本地對(duì)象都是宿主對(duì)象host object,即由 ECMAScript實(shí)現(xiàn)的宿主環(huán)境提供的對(duì)象。所有BOM和DOM對(duì)象都是宿主對(duì)象。
JavaScript創(chuàng)建對(duì)象
//混合構(gòu)造函數(shù)和原型方式 function Person(name,age){//構(gòu)造函數(shù)中定義的屬性,這些屬性每次創(chuàng)建對(duì)象都會(huì)被創(chuàng)建一次this.name=name;this.age=age;this.friends=new Array("Mike","John"); } Person.prototype.showFriends=function(){//原型方式中定義的屬性,這些屬性只會(huì)被創(chuàng)建一次,alert(this.friends); } //動(dòng)態(tài)原型 function Person(name,age){this.name=name;this.age=age;this.friends=new Array("Mike","John");if(typeof Car._initialized==="undefined"){Car.prototype.showFriends=function(){alert(this.friends);}}Car._initialized=true; }數(shù)據(jù)類型type
- 原始類型primitive type
- Number:不區(qū)分整數(shù)和浮點(diǎn)數(shù)。
- String:以單引號(hào)'或雙引號(hào)"括起來的任意文本。
- Boolean:只有true、false兩種值。
- Null:只有一個(gè)專用值null。
- Undefined:只有一個(gè)值,即undefined。當(dāng)聲明的變量未初始化時(shí),該變量的默認(rèn)值是undefined。
- 引用類型(本地對(duì)象)
- Object,Function,Array,...
- String,Boolean,Number,Date,RegExp,...
- Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,...
函數(shù)Function
ECMAScript的函數(shù)實(shí)際上是功能完整的對(duì)象。
函數(shù)名只是指向該函數(shù)對(duì)象的引用值(地址)。
盡管可以使用Function構(gòu)造函數(shù)創(chuàng)建函數(shù),但最好不要使用它,因?yàn)橛盟x函數(shù)比用傳統(tǒng)方式要慢得多。不過,所有函數(shù)都應(yīng)看作Function的實(shí)例。
閉包
指的是詞法表示包括不被計(jì)算的變量的函數(shù),也就是說,函數(shù)可以使用函數(shù)之外定義的變量。
var sMessage = "hello world"; function sayHelloWorld() {//sayHelloWorld()函數(shù)根本不接受參數(shù),它使用的值是從執(zhí)行環(huán)境中獲取的。alert(sMessage); } sayHelloWorld();該腳本被載入內(nèi)存后,并沒有為函數(shù)sayHelloWorld()計(jì)算變量 sMessage的值。該函數(shù)捕獲sMessage的值只是為了以后的使用,也就是說,解釋程序知道在調(diào)用該函數(shù)時(shí)要檢查sMessage的值。sMessage將在函數(shù)調(diào)用sayHelloWorld()時(shí)(最后一行)被賦值,顯示消息"hello world"。
轉(zhuǎn)載于:https://www.cnblogs.com/jiehuifang/p/7691919.html
總結(jié)
以上是生活随笔為你收集整理的JavaScript类型·对象·函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Django的时区设置TIME_ZO
- 下一篇: Spring Boot中验证码实现kap