——js的組成
ecmascript(es) : 負責翻譯,為js的核心,直譯器。
dom (document object model 文件物件模型):賦予js操作html的能力,document。
bom (browser object modal 瀏覽器物件模型):賦予js操作瀏覽器的能力,window,不相容不建議使用。
——變數型別
5種基本型別:unll,undefined,boolean,number,string
1種複雜型別:object
5種引用型別:array,date,regexp,object,function
3種基本包裝型別:boolean,number,string
2種單體內建物件:global,math
undefined:沒有定義的變數,var宣告沒有初始化的變數
typeof 可檢視變數型別,乙個變數應只存乙個型別的資料。
var a = 12;
// alert(typeof a); number
a = 'dwefeyui';
// alert(typeof a); string
a = true;
// alert(typeof a); boolean
a = function();
// alert(typeof a) function
a = document;
// alert(typeof a); object
var b;
// aletr(typeof b); undefined
// 1.真的未定義
// 2.雖然定義但是沒有給東西
——顯式型別轉換(強制型別轉換)
parseint() 可將字串轉換為數字(整數),parsefloat()可將字串轉換為數字(小數);
var a = 'abc';
// alert(parseint(a)); nan
var a = '3.5';
alert(parsefloat(a));
isnan() 判斷該元素是否為nan,nan表示(not a numer),兩個nan之間不相等;
——隱式型別轉換
==先轉換型別,再進行比較;===不轉換型別,直接比較;
var a = 5;
var b = '5';
// alert(a==b); true
alert(a===b); //false
減法也可做隱式型別轉換,但加法不行。var a = '12';
var b = '5';
// alert(a+b); //125
alert(a-b); //7
——變數作用域
區域性變數:只能在定義他的函式裡面使用;
全域性變數:在任何地方都能用;
——閉包:子函式可以使用父函式的區域性變數。
——匈牙利命名法:型別字首(僅給變數取名時需要),首字母大寫
——運算子
+加、-減、*乘、/除,%求模(餘數)。(隔行變色,秒轉時間)
——賦值
=、+=、-=、*=、/=、%=。(i+=1等效於i=i+1)
——邏輯
&&並且、||或者、!否;運算優先順序:括號;
——程式流程控制
判斷:if、switch、?:三元目()運算子
switch (變數) ;
條件?語句1:語句2;
迴圈:for、while;跳出:break(中斷整個迴圈)、continue(中斷本次迴圈);
——真和假
真(true):非0數字、非空字串、非空物件
假(false):數字0、空字串、null(空物件)、undefined
——json
和陣列的區別:陣列用 [ ],下標為數字,有length,故迴圈時採用0 - length這種方法;
json用 ,下標為字串,沒有length,故迴圈時用for in這種方法;
var json = ;
var arr = [12,5,'add'];
//可像變數一樣操作
alert(json.a);
for(var i = 0;i——函式返回值
將函式返到函式外面,為函式的執行結果,可做運算,乙個函式應該只返回一種值。
function show(a,b)
alert(show(3,5));
——函式傳參
arguments[ ] (
可變參,不定參):引數個數可變,為乙個陣列。
css中傳兩個引數為獲採樣式,三個引數為設定樣式,一般給引數取名,增加可讀性。
function css (obj,name,value)else
}window.onload = function()
getcomputedstyle () 用於獲取非行間樣式
(firefox、chrome、safari)、currenstyle () 也可(ie、opera),style用於獲取行間樣式。相容性問題通常用if else處理
——函式封裝
將需要多次用到的函式進行封裝方便呼叫。
function getstyle(obj,name)else
}window.onload = function()
上述getstyle()只能用於取單一的樣式,如:width,height;無法取出border等含有多個元素的樣式,需寫成border-color等樣式。
——陣列基礎
有兩種寫法,一般採用第乙個
var a = [1,2,3];
var a = new array(1,2,3);
屬性:length,可以用於獲取陣列長度,也可設定,乙個陣列中應該只存一種資料型別。
新增,刪除元素:push(),從尾部新增;unshift(),從頭部新增;pop(),從尾部刪除;shift(),從頭部刪除;
刪除 splice(起點,長度);插入/替換 splice(起點,長度,元素)。
var arr = [1,2,3,4,5,6];
// arr.splice(2,3);
arr.splice(2,0,'a','b');
alert(arr);
陣列連線:concatt ( );
分隔符:join ( ) ;
var a = [1,2,3];
var b = [4,5,6];
alert(a.concat(b));
var arr = [1,2,3,4,5,6];
alert(arr.join('--'));
陣列排序:sort ( ) ,但通常將陣列當做字串來比較,導致排序數字時亂序。var arr = [465,255,30,66,5,67];
arr.sort(function(n1,n2));
alert(arr);
js學習筆記二
1.oop 1 esmascript有兩種屬性 資料屬性和訪問器屬性。可以通過 object.defineproperty 來修改。2 屬性前面加一下劃線,表示能通過物件方法訪問該屬性。3 按照慣例,建構函式的函式名是以乙個大寫字母開頭。非建構函式則以乙個小寫字母開頭。2.工廠模式 function...
JS學習筆記(二)
js中的所有事物都是物件,例如 字串 數值 陣列 函式等,每一種物件都有屬性和方法。屬性 反映該物件某些特定的性質,如字串的長度 影象的長寬等 方法 對物件執行的動作,如提交submit,時間獲取getyear等 訪問物件屬性語法 var array new array 5 len array.le...
JS學習筆記(二)
function addloadevent func else window.onload可以是乙個函式。如果是,這個函式將在頁面載入完成之後被執行。這裡typeof是檢測型別,函式的型別就是 function 這個字串。那麼,如果 typeof window.onload function 也就是...