JavaScript基礎知識1
所謂識別符號,就是指變數、函式、屬性的名字,或者函式的引數。識別符號可以是按照下列格式規則 組合起來的一或多個字元: 第一個字元必須是一個字母、下劃線(_)或一個美元符號($); 其他字元可以是字母、下劃線、美元符號或數字。
註釋
// 單行註釋
var Ae = 32 ; //這行是註釋識別器不解析,是解釋程式碼所在的作用
/* 多行註釋*/
var Ae = 32 ; /*
var Ab 321 ; 和上方的單行註釋作用一樣,只不過這是多行的,只要在/* */裡面 的就算是註釋內容
*/
分號
語句結尾的分號不是必需的,但我們建議任何時候都不要省略它。
變數
javascript 的變數不像c語言和Java或者其他語言一樣,JavaScript變數是鬆散型別的。
定義變數格式 var 變數名(即一個識別符號)
變數能用var
儲存任何值
c語言定義變數
int i, j, k; //整形變數
char c, ch; //字元變數
float f, salary; //浮點變數
double d; //雙精度浮點變數
JavaScript定義變數
var i = 4; //整形變數
var c = "xx" ; //字元變數
var f = 2.1 ; //浮點變數
var d = 2.22 ; //雙精度浮點變數
var message
上面這段程式碼定義了名為message的變數,但是沒有賦值(如 var i = 4;就是給i賦4的數值),如上沒有賦值給message系統會自動給這個變數賦值一個Undefined的值
message = 43;
上面這段程式碼沒有加var直接給message賦值,這種操作有效,使message變成了一個全域性的變數
資料型別
分兩種,一種基本資料型別
也叫簡單資料型別;另一種是複雜資料型別
基本資料型別 Undefined,Null,Boolean,Number,String
複雜資料型別 Object
Undefined |
Null | Boolean | Number | String |
---|---|---|---|---|
值未定義 | 表示一個空的物件指標 | 布林值(turn;false) | 數值 | 字串 |
Boolean() | Number();isNaN();parseInt();parseFloat() | toString() |
typeof操作符
用法: typeof(運算元) 如下
var message = "some string";
alert(typeof (message)); // "string" alert()函式是彈出警告框,可自行測試
Undefined值的變數和未定義的變數是不一樣的,看下面的例子:
var message; // 這個變數宣告之後預設取得了 undefined 值 相當於(var message = undefined;)
alert(message); // "undefined"
alert(age); // 產生錯誤 這個變數(age)並沒有宣告
Undefined是派生自null的 所以(null==undefined)對它們的相等性測試要返回 true;
可以對任何資料型別的值呼叫 Boolean()函式,而且總會返回一個 Boolean 值。至於返回的 這個值是 true 還是 false,取決於要轉換值的資料型別及其實際值。下表給出了各種資料型別及其對 應的轉換規則。
資料型別 | 轉換為turn的值 | 轉換為false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字串 | ""(空字串) |
Number | 任何非零數字值(包括無窮大) | 0和NaN |
Object | 任何物件 | null |
Undefined | n/a① | undefined |
需要注意的是,Boolean 型別的字面值 true 和 false 是區分大小寫的。也就是說,True 和 False (以及其他的混合大小寫形式)都不是 Boolean 值,只是識別符號。
Number分整數和浮點型別(也稱雙精度浮點型別)
NaN,即非數值(Not a Number)是一個特殊的數值,這個數值(NaN)用於表示一個本來要返回數值的運算元未返回數值的情況
var num1 = Number("Hello world!"); //NaN 轉換不了Hello word 字串
isNaN()函式接受一個引數,用來測試這個引數是不是一個"數值",後返回一個Boolean值
任何不能被轉換為數值的值都會導致這個函式返回 true。
alert(isNaN("10")); //false(可以被轉換成數值 10)
alert(isNaN("blue")); //true(不能轉換成數值)
toString()可以看做是把一個數據轉換成了相應字串的形式
valueOf(),它的作用是返回它相應的原始值
每個JavaScript固有物件的 valueOf 方法定義不同。
由於 Number()函式在轉換字串時比較複雜而且不夠合理,因此在處理整數的時候更常用的是 parseInt()函式 (詳細原因請去查Number轉換規則)
用 parseInt()轉換空字串會返回 NaN(Number()對空字元返回 0)。
如果第一個字元是數字字元,parseInt()會繼續解析第二個字元,直到解析完所有後續字元或者遇到了一個非數字字元。
如,"1234blue"會被轉換為 1234,因為"blue"會被完全忽略。類似地,"22.5"會被轉換為 22,因為小數點並不是有效的數字字元。
為了更好地理解 parseInt()函式的轉換規則,下面給出一些例子:
var num1 = parseInt("1234blue"); // 1234
var num2 = parseInt(""); // NaN
var num3 = parseInt("0xA"); // 10(十六進位制數)
var num4 = parseInt(22.5); // 22
var num5 = parseInt("070"); // 56(八進位制數)
var num6 = parseInt("70"); // 70(十進位制數)
var num7 = parseInt("0xf"); // 15(十六進位制數)
指定基數會影響到轉換的輸出結果。例如:
var num1 = parseInt("10", 2); //2 (按二進位制解析)
var num2 = parseInt("10", 8); //8 (按八進位制解析)
var num3 = parseInt("10", 10); //10 (按十進位制解析)
var num4 = parseInt("10", 16); //16 (按十六進位制解析)
parseFloat()
也是從第一個字元(位置 0)開始解析每個字元。而且也是一直解析到字串末尾,或者解析到遇見一個無效的浮點數字字元為止。也就是說,字串中的第一個小數點是有效的,而第二個小數點就是無效的了,因此它後面的字串將被忽略。舉例來說,"22.34.5"將會被轉換為 22.34。
var num1 = parseFloat("1234blue"); //1234 (整數)
var num2 = parseFloat("0xA"); //0
var num3 = parseFloat("22.5"); //22.5
var num4 = parseFloat("22.34.5"); //22.34
var num5 = parseFloat("0908.5"); //908.5
var num6 = parseFloat("3.125e7"); //31250000
除了第一個小數點有效之外,parseFloat()與 parseInt()的第二個區別在於它始終都會忽略前導 的零
parseFloat()與 parseInt()是函式
toString()方法 String()轉型函式
var num = 10;
alert(num.toString()); // "10"
--------------------------------------
var value1 = 10;
alert(String(value1)); // "10"
Object型別
物件其實就是一組資料和功能的集合
物件可以通過執行 new 操作符後跟要建立的物件型別的名稱來建立
建立 Object 型別的例項併為其新增屬性和(或)方法,就可以建立自定義物件,如下所示: var o = new Object();
var o = new Arrat();
物件就是擁有方法和屬性的型別