記一次兩小時的js編程進修

JavaScript

特徵

1.弱範例言語
2.詮釋型言語
3.客戶端言語
關於有進修Java、C以及Python一類的人來講,最熟習的莫過於這些都是強範例言語。它們嚴厲的恪守自身的劃定,永久也不會有下面的狀況湧現,由於編譯的時刻會自身拋出毛病而停止運轉。

var sum="1"+1  
console.log(sum)
>>"11"

編譯範例則與Python的定位比較類似,它們都是一邊實行,一邊詮釋。這就是與Java這類編譯型言語的差別地點。比方Java就是先編譯天生靜態的class文件,然後才會應用jvm實行。

客戶端言語則就是關於瀏覽器而言。我們常說的php就是一種典範的服務器端言語,它是實行在web服務器的劇本。PHP在服務器端應用用戶通報的數據天生要求的頁面,然後將其發送給用戶。而JavaScript則與其相反,由於它是實行在瀏覽器中。只須要將寫好的js劇本和頁面發送給用戶,這個時刻用戶的瀏覽器就會自動天生絢麗多彩的網頁。

經常運用交互

window對象位於DOM層級的最頂端,代表顯現頁面的瀏覽器窗口,而我們則能夠應用它完成一系列交互行動。

alert("Boom!")
window.alert("Boom, too!") //this is equal to alert("Boom!")

上面是最罕見的彈出正告框,另外另有類似的window.confirm()window.prompt()

window.document.write()
document.write() // This has the the same fuction of 'window.document.write()'

人人能夠已注重到在一個窗口中永久包括window對象,所以我們省略不寫就會默許運用window。
而這裏write()函數的功用就是直接向HTML文檔寫入字符,對的!就是一種直接寫入功用,相稱的愚笨。
這裡會有更好的解決方案,舉個例子:

<p id='1234'>this is for Rare to test</p>
var item=document.getElementById("1234");
item.innerHTML="這是十八用來測試的"
//這個時刻<p>標籤的文本實在已變為了上面的字符串

備註:JavaScript的每一行的末端不強迫運用;,這一點和Python言語極為的類似。

數據範例

相對其他言語,js的數據範例也是一般般,實在並沒有奇異的處所,固然沒有字符這個數據範例須要特別注重一下。下面引見它的基礎數據範例。

1.數值

很遺憾的說,JavaScript好像並沒有詳細辨別byte, short, int, long, float和double耶。就籠統的指定了一個數值範例。我們須要注重的是,NaN(not a number),Infinity(無窮大)這兩個在數值中的特別存在。

2.字符串

相同C中的字符串範例(雖然C沒有字符串範例)。由於它們的一些函數極為的類似,比方concat(), split()等等。定名和用法都險些一摸一樣。

3.布爾值

falsetrue兩個值,與其他言語中好像沒有任何區分以及特異地點。注重點:JavaScript中有類假的觀點,即使不是false也會被當作false處置懲罰,請注重下面幾個值:
1.布爾值false
2.未定義undefined
3.null
4.0
5.NaN
6.””空字符串

面向對象

很遺憾地說,JavaScript設想的時刻肯定沒有斟酌OOP(Object-Oriented Programming)。固然即使如許JavaScript也供應了多種new對象的體式格局。

1.建立直接實例

JavaScript直接內置了一個對象Object,能夠用來建立一個小白對象,即空缺對象:

newObject=new Object()

是否是與罕見的建立對象不太一樣,比方下面如許的:

// in java
Class item=new Class();
// in python
item=Class()

2.運用關鍵字this

this指向HTML元素自身,這是我們運用this建立對象的時刻必需注重的處所。而當我們在函數中運用this則指向函數的父對象。參照Java中的this,簡樸易懂。

newObject=new Object()
newObject.info="This is for testing."
function ahhh(){
  alert(this.info)
}
newObject.showInfo=ahhh

上面的函數ahhh內里的this相稱於newObject,但函數外部卻不可運用this.showInfo=ahhh,由於this是指向父對象的。newObject.showInfo=ahhh本質上是將ahhh函數的地點通報給showInfo,使其能夠挪用。

3.匿名函數

舉個栗子:

newObject.showInfo=function(){
  alert(this.info)
}

我們讓newObject的showInfo屬性具有了這個函數的功用,然則這個函數叫什麼名字我們並不知道,豈非它藏匿了名字,那它豈不就是一種匿名函數(anonymous function)。

4.運用組織函數

emmm,熟習java的話肯定不會對組織函數生疏,在java中它是一個有着和類一樣名字的特別函數,而且不能有返回值。然則在JavaScript中卻有點不太一樣。請看下面的代碼:

function myObject(){
  this.info="It's my object."
  this.showInfo=function(){
    alert(this.info)
  }
  this.setInfo=function(){
    this.info=newInfo  
  }
}
var oneObject=new myObject()

沒想到吧,本質上myObject不是一個函數嗎?不過這裏卻看到了js的一個不足的處所,組織函數不能有多個,固然實在本質上只是向組織函數通報的參數差別,而js有着和Python一樣的可選參數機制,天然不須要多個組織函數。

emmm,沒想到寫這篇文章比進修的時候還長,先撤了先撤了,有空填坑,回見啦。

一分鐘讀懂Python編程的三個特別要領
個人博客十八

迎接關注民眾號:Python與MySQL,有空會填種種坑的。回見!

    原文作者:十八
    原文地址: https://segmentfault.com/a/1190000015402513
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞