JavaScript 基礎篇(一)

來源:互聯網
上載者:User

JavaScript 基礎篇(一)
基礎篇
Javascript:一、資料類型和值
javascript:允許使用3種基本類型資料--------數字、字串、布爾值,此外還支援兩種小資料類型null(空)和undefine(未定義).
javascript:還支援符合資料類型-對象(object),javascript中對象分兩種,一種對象表示的已命名的值的無序集合,另一種表示有 編號的值的有序集合。其實有序集合就是數組(Array)。
javascript:還定義了另一種特殊對象----函數,還有一些javascript定義的一些專用對象(等同C#封裝的類一樣的概念,直接用就行) 複製代碼 代碼如下:<script>
整型直接量:3或者10000,說白了就是數字
浮點型直接量:3.14,2345.567等,就是帶小數點的
字串直接量:"3.14","demo"等,所謂字串,就是帶單引號或雙引號括起來的Unicode字元序列。
把數字轉換為字串:1,var s = 100; s+="What you name";數字就會先
轉換成字串
2,var s = 100 +"";加一個Null 字元串
3.要讓數字更顯示的轉換為字串可以使用 String()函數或
者使用toString函數。
把字串轉換為數字:var product = "2" * "2";其實當一個字串用於數字環
境 中它會自動地轉換成一個數字,也可以通過減0也可達到同樣的效果,或者使用
Number()函數
布爾值:
在這裡我想和大家分享的內容還是轉換:今後用的會比較多。1、當一個布爾值用在數字環境中,true就轉換為數字1,而false轉換成數字0,在字串環境中,true就轉換成字串true,而false就轉換成字串false
函數:
函數是一個可執行檔JavaScript程式碼片段。這裡說一下:函數作為資料類型,也可以像其他類型一樣賦給對象的屬性,當賦值成功後,屬性常常當做是哪個方法的引用。後面常用。
函數直接量:var square = function(x){return x*x};//後面常用到,要能理解或記住
</script>

Javascript:二、對象
1、對象 複製代碼 代碼如下:<script>
var o = new Object();//大家注意,javascript大小寫敏感!
var now = new Date()
var regex = new RegExp("^\+?\d{1}\d{3}$")//Regex
對象的直接量:
var point = {x:12,y:34};
var point2 = {"super":{day:sunday,day1:monday}}//對象的屬性引用另一個對象。
對象的轉換:
當一個非空的對象用於布爾環境時:它轉換為true,當用在字串環境中是,javascript會調用對象的toString()方法,並且使用該函數返回的值,當用於數字環境時:javascript 會調用該對象的valueOf()方法,如果返回的是一個基本類型,這個值會被使用,大多數的時候返回的是對象自己,這種情況下javascript回調用toString()方法把對象轉換成一個字串,然後在試圖轉換成數字。這上面的概念,希望大家也要理解,以後會用到。
</script>

2、數組 複製代碼 代碼如下:<script>
var array = new Array();
var arr = new Array(1.2,"Javascript",{x:12,y:23})//帶參數的
數組直接量:
var a = [1.2,"Javascript",{x:12,y:23}]//數組是[]號,對象是{}號,很好記!
</script>

3、Null(空)
javascript的關鍵字Null 是一個特殊的值,它表示無值,null 常被看作物件類型的一個特殊值,即代表無對象的值,當一個變數的值
為null,那麼就說明它的值不是有效(Array,Object,數字,字串,布爾值), 細節:null 在布爾環境中它轉換成false;在數字
環境中轉換成0。
4、Undefined(未定義)
在使用一個並未聲明的變數時,或者使用了已經聲明的變數但沒有賦值的變數時,又或者是使用一個並不存在的對象屬性是,返回的
就是undefined值,在往後的(命名空間,模組用的還是蠻多,大家要理解),細節:underfined在布爾環境中它轉換成false,在數字環境
它會轉換成NaN。這一點和null有區別。封裝它的對象是Error。
小結:以上內容雖然一看就懂,希望和我一樣初學的朋友們,千萬不要大意!
JavaScript 基礎篇 (二)
基礎篇
javascript:變數的聲明
以下是幾種聲明變數的方式 複製代碼 代碼如下:var value;
var value,value1,value2;//同時聲明多個變數,但是這些變數的值都是undefined
var i = 0,j = 0,k=100;//變數聲明,初始化一體。
//如果大家嘗試讀一個不存在的變數(值)會報錯!但是嘗試給一個未使用Var聲明的變數賦值,javascript
//會隱式的聲明改變數,而且聲明了的變數還是全域的。細節:所以大家建立變數都盡量使用Var
//變數的範圍(這個問題也容易出,大家要搞明白)

javascript:變數的範圍
這些都是細節,和我一樣初學的一定要注意避免! 複製代碼 代碼如下:var golbal = "golbal"; //全域變數
var local ="local";
function area()
{
//局部變數的優先順序比全域變數的高
var local = "arealocal"
//當函數體內聲明的變數名和全域變數名相同時,javascript 會隱藏全域變數
var golbal ="areagolbal";
document.write("local is :"+local + "and golbal is :" + golbal +"<br />");
}
area();
//輸出:local is :arealocaland golbal is :areagolbal

在嵌套的函數裡面定義局部變數,效果會怎麼樣呢?看下面: 複製代碼 代碼如下:var hope = "moremoney";
function createmore()
{
var hope = "have more money";//局部
function createmoreto()//嵌套函數
{
var hope = "have more money to much";//局部
document.write("Createmoreto hope is :"+hope +"<br />");
//輸出:Createmoreto hope is :have more money to much
}
createmoreto();//調用
document.write("Createmore hope is :" +hope +"<br />");
//輸出:Createmore hope is :have more money
}
createmore(); //調用

javascript:傳值和傳址
這裡也是比較重要的概念!不要漏了。 複製代碼 代碼如下:傳值           傳址
複製 實際複製的值,存在不同的、            複製的只是對數位引用。如果通過這個
獨立的拷貝。            新的引用修改了數值,這個改變對最初的
                        引用來說也是可見的。
傳遞 傳遞給函數的是值的獨立拷貝             傳遞給函數的是對數值的引用,如果函數
對它的改變在函數外沒有影響             通過傳遞給它的引用修改了數值,這個改
                         變也是可見的。       
比較 比較這兩個對立的值,通常逐             比較的是兩個引用,以判斷它們引用的是否
位元組的比較,以判斷是否相等              是同一個數值。

javascript:基本類型和參考型別
javascript的基本規則是:基本類型通過傳值來操作,參考型別通過傳址來操作。(什麼事實值型別,或者什麼事引用看我上一篇) 複製代碼 代碼如下:按值傳遞
var value = 1;
var copyvalue = value; //將value賦給另一個變數
function addTotal(total,arg)
{
total+= arg; //total = total + arg 效果等同
}
//調用函數,傳兩個參數(大家可能會認為這個函數改變了全域變數的值,其實沒有,函數用的也是對立拷貝)
addTotal(value,copyvalue);
if(value == 1) copyvalue = 2;
document.write("total \t" + value + "and copyvalue \t\t" + copyvalue+"<br />");
//最後輸出:total 1and copyvalue 2

複製代碼 代碼如下:按址傳遞
var array = new Array("Javascccp");
var objarray = array;
function modifyArray(arr)
{
arr[0] = "JAVASCRIPT";
}
//沒調用函數前
document.write(array[0] +"<br />");
//輸出Javascccp;
//調用函數後
modifyArray(array);
document.write(array[0]+"<br />");
//輸出大寫JAVASCRIPT
//通過修改objarray會是一樣的效果
objarray[0] = "Frank";
document.write(array[0]+"<br />");
//輸出Frank;

小結:上面內容希望大家都不要錯過,對學習後面的知識還是很有協助的!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.