1. 程式人生 > >JavaScript基礎知識1

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();

物件就是擁有方法和屬性的型別