Rumah  >  Artikel  >  hujung hadapan web  >  Sistem jenis JavaScript Tetingkap objek kajian nota_javascript kemahiran

Sistem jenis JavaScript Tetingkap objek kajian nota_javascript kemahiran

WBOY
WBOYasal
2016-05-16 15:21:151249semak imbas

Objek tetingkap ialah objek paling bawah ke atas untuk JavaScript dalam penyemak imbas web Ia berada di penghujung skop dan merupakan objek yang mengandungi semua objek. Semua sifat dan fungsi yang ditakrifkan dalam skop global adalah sifat objek tetingkap

var myStringVar = 'myString';
var myFunctionVar = function(){};
console.log('myStringVar' in window);//true
console.log('myFunctionVar' in window);//true

1
Biasanya terdapat dua cara untuk merujuk objek tetingkap. Yang pertama ialah merujuk nama yang diberikan kepada objek tetingkap; yang kedua ialah menggunakan kata kunci ini dalam skop global

var foo ='bar';
windowRef1 = window;
windowRef2 = this;
console.log(windowRef1,windowRef2);//输出window对象的引用
console.log(windowRef1.foo,windowRef2.foo);//'bar' 'bar' 

2. Ciri


Objek tetingkap adalah tersirat dan biasanya tidak dirujuk secara eksplisit walaupun objek tetingkap diisytiharkan secara eksplisit, ia adalah tersirat kerana objek tetingkap adalah yang terakhir dalam rantai skop

//window.alert()和alert()语句基本上是相同的
var foo = {//window对象在这里是隐式的,window.foo
 fooMethod: function(){
  alert('foo' + 'bar');//window对象在这里是隐式的,window.alert
  window.alert('foo' + 'bar');//显式调用window对象,效果一样
 }
}
foo.fooMethod();//window对象在这里是隐式的,window.foo.fooMethod()


3. Atribut

Objek tetingkap mempunyai sejumlah 18 atribut

undefined NaN Infinity 
Boolean String Number Object Array Function Date RegExp 
Error EvalError RangeError ReferenceError SyntaxError TypeError URIError 
[Nota] Menetapkan nilai kepada undefined, NaN dan Infinity adalah dilarang

4 Kaedah


Javascript disertakan dengan beberapa fungsi yang dipratentukan, yang dianggap kaedah objek tetingkap

1), kaedah pengekodan

encodeURI():Enkodkan keseluruhan URI, menggantikan semua aksara yang tidak sah dengan UTF-8 khas Terdapat 82 aksara tidak dikodkan dalam encodeURI():

# $ & ' ( ) * , - ;
encodeURIComponent():
Encode bahagian tertentu URI (biasa digunakan untuk menghantar parameter dalam kaedah GET), menggantikan semua aksara tidak sah dengan UTF-8 khas Secara umumnya, gunakan encodeURIComponent() lebih daripada encodeURI() kerana dalam praktiknya adalah lebih biasa untuk menanyakan parameter rentetan daripada mengekod URI yang mendasari. Terdapat 71 aksara tidak dikodkan dalam encodeURIComponent():

! ' ( ) * - _ ~ 0-9 a-z A-Z


escape():
Enkodkan rentetan dan tukar pengekodan unikod aksara kepada jujukan heksadesimal Penggunaan escape() ditentang dalam ES3, dan disyorkan untuk menggunakan encodeURI dan encodeURIComponent sebaliknya, escape() masih digunakan secara meluas untuk pengekodan kuki, kerana escape() berlaku untuk mengekod aksara haram dalam kuki dan. sering digunakan dalam laluan. Kemunculan "/" tidak dikodkan. Terdapat 69 aksara tidak dikodkan untuk escape():

* - . / @ _ 0-9 a-z A-Z


nyahkodURI():
nyahkod pengekodURI()

nyahkodURIComponent():

nyahkodkan encodeURIComponent()

unescape():

Decode escape()

var uri = "http://www.wrox.com/illegal value.htm#start";
console.log(encodeURI(uri));//http://www.wrox.com/illegal%20value.htm#start
console.log(encodeURIComponent(uri));//http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start
console.log(escape(uri));//http%3A//www.wrox.com/illegal%20value.htm%23start
var uri = 'http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start';
console.log(decodeURI(uri));//http%3A%2F%2Fwww.wrox.com%2Fillegal value.htm%23start
console.log(decodeURIComponent(uri));//http://www.wrox.com/illegal value.htm#start
console.log(unescape(uri));//http://www.wrox.com/illegal value.htm#start
eval()

Kaedah eval() adalah seperti penghurai ECMAScript yang lengkap, hanya menerima satu parameter, rentetan JavaScript yang akan dilaksanakan. Apabila penghurai mendapati bahawa kaedah eval() dipanggil dalam kod, ia akan menghuraikan parameter masuk sebagai pernyataan ECMAScript sebenar, dan kemudian memasukkan hasil pelaksanaan ke kedudukan asal. Keupayaan kaedah eval() untuk mentafsir rentetan adalah sangat berkuasa, tetapi juga sangat berbahaya. Apabila ia digunakan untuk melaksanakan data input pengguna, pengguna berniat jahat boleh memasukkan kod yang mengancam tapak atau aksara aplikasi, yang dipanggil suntikan kod

[Nota] Dalam mod ketat, mana-mana pembolehubah atau fungsi yang dibuat dalam eval() tidak boleh diakses secara luaran, dan memberikan nilai kepada eval juga akan menyebabkan ralat

2), kaedah digital

Terdapat empat kaedah digital di bawah objek Window: isFinite(), isNaN(), parseFloat(), dan parseInt()

Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu kajian semua orang.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn