摘要:布爾值和兩個值,與其他語言中似乎沒有任何區別以及特異所在。注意點中有類假的概念,即便不是也會被當做處理,請注意下面幾個值布爾值未定義空字符串面向對象很遺憾地說,設計的時候肯定沒有考慮。
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文檔寫入字符,對的!就是一種直接寫入功能,相當的笨拙。
這里會有更好的解決方案,舉個例子:
this is for Rare to test
var item=document.getElementById("1234"); item.innerHTML="這是十八用來測試的" //這個時候標簽的文本其實已經變為了上面的字符串
備注:JavaScript的每一行的末尾不強制使用;,這一點和Python語言極其的類似。
數據類型相對其他語言,js的數據類型也是一般般,其實并無奇特之處,當然沒有字符這個數據類型需要特別注意一下。下面介紹它的基本數據類型。
1.數值很遺憾的說,JavaScript似乎并沒有具體區分byte, short, int, long, float和double耶。就籠統的指定了一個數值類型。我們需要注意的是,NaN(not a number),Infinity(無窮大)這兩個在數值中的特殊存在。
2.字符串雷同C中的字符串類型(雖然C沒有字符串類型)。因為它們的一些函數極其的相似,比如concat(), split()等等。命名和用法都幾乎一摸一樣。
3.布爾值false和true兩個值,與其他語言中似乎沒有任何區別以及特異所在。注意點: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,有空會填各種坑的?;匾?!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/95721.html
摘要:字符串也可以是一個對象日期是一個對象數學和正則表達式也是對象數組是一個對象甚至函數也可以是對象一般的語言,都是利用類來創建對象,完成面向對象的過程。 在之前的一篇文章的末尾我提到了JavaScript的對象創建方法,可以利用函數,內置對象和this等關鍵詞實現對象的創建。但是很遺憾,我最先接觸的面向對象的編程語言是java,因而對于這些實現面向對象的方法并非自己的首選。下面是那篇文章:...
摘要:記一次打包前言公司的一個公眾號要做一個的活動很簡單的兩個頁面寫完之后我想要不要去做一下壓縮還是直接放上去就好了后面一想還是做下壓縮吧正好重新學習下以前用都是人家寫好的手腳架拿來直接用的自己改改沒啥問題但是要自己重新搭一套好像也不太會所以趁這 記一次webpack打包 前言 公司的一個公眾號要做一個H5的活動. 很簡單的兩個頁面, 寫完之后, 我想要不要去做一下壓縮, 還是直接放上去...
摘要:前言這段時間一直負責公司的小程序的開發,總結了一些小程序的開發心得,方便自己以后的查閱也方便同仁少踩點坑。文章底部的技巧類小程序的識別小程序二維碼功能,小程序的高斯模糊,都是自己填的坑。 前言:這段時間一直負責公司的小程序的開發,總結了一些小程序的開發心得,方便自己以后的查閱也方便同仁少踩點坑。文章底部的技巧類小程序的識別小程序二維碼功能,小程序的高斯模糊,都是自己填的坑。歡迎交流。 ...
閱讀 2078·2019-08-30 15:53
閱讀 3073·2019-08-30 15:44
閱讀 2924·2019-08-30 14:11
閱讀 2919·2019-08-30 14:01
閱讀 2707·2019-08-29 15:16
閱讀 3755·2019-08-29 13:10
閱讀 1251·2019-08-29 10:56
閱讀 2534·2019-08-26 13:58