JavaScript基礎總結(未完)

JavaScript基礎總結:

基礎語法:語法

   在ECMAScript中,定義 是用  var  ,例如: var name="zhangsan";  ,這樣定義變量就會導致變量沒有準確的數據類型,可以隨意的轉換,在ECMAScript中,

  每行的代碼可以不用 ( ; ) 號來結束    例如

 var  name="zhangsan"

 var password="admin";

這兩句都不會用問題,ECMA會把拆行代碼的結尾看作該語句的結尾。

變量

在ECMAScript中,定義變量有兩個地方需要注意:

(1)ECMAScript 在定義變量的時候可以不去初始化 :var test;   這種事合法的

 (2)在ECMAScript中變量聲明不是必須的: var test1="hello";    test2=test1+"world";  alert(test2);    輸出結果是 helloworld

解釋:ECMAScript 的解釋程序遇到未聲明過的標識符時,用該變量名創建一個全局變量,並將其初始化爲指定的值

數據類型

在ECMAScript中,數據類型分爲原始數據類型和引用數據類型,其中,原始數據類型分爲:Undefined、Null、Boolean、Number、String。String類型,在

ECMAScript中和別的語言不同,被當成了原始數據類型,有着固定的長度,存儲在棧中。

類型轉換

toString()的使用

在ECMAScript中定義的所有對象都有toString()方法,其中Boolean類型的toString()方法,輸出的內容由變量值決定,Number類型的toString()方法,比較特殊,

分爲默認模式和基模式,默認模式事例:var num1=10; alert(num1); var num2=10.1; alert(num2); 輸出結果全是10, 基模式事例:var num1=10; alert(num1.toString(2)); number這種帶參數的toString(),輸出將採用參數的值,作爲進制進行轉換,也就是輸出結果將是 num1的二進制

數組toString(), var  arr=new Array("zhangsan","lisi","wangwu") ; alert(arr.toString());  輸出 zhangsan,lisi,wangwu

parseInt()使用

普通模式:使用parseInt()方法,首先判斷變量的首字符是不是一個有效數字,如果不是,則返回NaN,如果是則看後面找到不是有效字符的前面,進行截取 回,如果遇到 10.6 這種情況,會返回10,對於整數來說,小數也不是有效字符。

基模式:var iNum1=paserInt("10",2);  傳入第二個參數,會根據第二個參數傳入的值,進行進制轉換, 本事例將返回 一個2進制的數字

parseFloat()使用

parseFloat 沒有進制轉換的基模式,其餘和parseInt()大體一致,但是 遇到 一位小數的時候,將返回一位小數,遇到二位小數將第二個小數之前部分進行截取。

強制類型轉換

Boolean()  函數

 var b1=Boolean(" ");   空字符串則返回false

var b1=Boolean("hello"); 非空字符串 true

var b1=Boolean(50);  非0數字 返回true
var b1=Boolean(0);   0 返回false

var b1=Boolean(null); 返回false

var b1=Boolean(new Object()); 對象返回true

Number()函數

Number(true);   返回1

Number(false); 返回0

Number(null);  返回 0

Number(undefined);  返回NaN

Number("1.2.3");  返回NaN

Number(new Object()); 返回NaN

String()函數

String()函數,幾乎所有的類型都可以轉換成字符串,不過其中需要注意:var s1=new String(null);  返回null  ,var s1=null; alert(s1.toString()); 會報錯

引用數據類型

var obj=new Object();  這種沒有參數的對象代碼可以簡寫成 var obj=new Object;

&&   ||   !  的含義

1. && 的工作方式:從第一個開始,遇到值爲false的表達式(fasle、null、undefined、0、NaN、‘’)則返回此表達式,否則返回最後一個 表達式(注意,這邊所說的表達式不一定爲boolean類型)
2. || 的工作方式:從第一個開始,遇到值爲true的表達式(與上面&&相反的其他情況)的返回此表達式,否則返回最後一個表達式
3. ! 的工作方式:對表達式的值取非(注意不是對表達式)。

Boolean引用類型難點

var booleanfalse=new Boolean(false);

alert(booleanfalse && true);

這個表達式返回的值將是true。如果單純理解 && 工作方式,那麼將是 如果booleanfalse 如果爲false,則返回第一個表達式,如果爲true,如果 爲true,則返回第二個表達式,爲什麼這裏運行後的結果變爲了true?

首先:這裏有一個問題, booleanfalse && true 進行比較,booleanfalse 是一個引用數據類型,是一個對象,在這裏進行和一個Booleand 的原始數據類型進行比較,那麼booleanfalse 會進行一個自動轉換,由對象轉換爲原始數據類型 ,參照上面對象轉換Boolean 類型的原則。 將返回true.所以在比較中booleanfalse 的實際值是true.

var booleanfalse=new Boolean(false);

var b1=booleanfalse && true;

var b2=true && booleanfalse;

alert("b1="+b1+"...b2="+b2);

這裏又會產生一個疑惑點,爲什麼得到得結果確是 b1=true b2=false 在 var b2= true && booleanfalse; 在程序運行的時候 當看到 && 表達式 前面的時候,是一個true,所以 b2的結果是一個對象 也就是booleanfalse,當進行alert 輸出的時候,程序做了一部處理, 對象.toString()處理, 在Boolean 引用數據類型中 ,對toString()進行了覆蓋處理,返回字符串true和false,所以這裏b2輸出的結果將是false,但是b2本身卻是個對象


發佈了28 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章