智慧型社JS學習筆記(二)

2021-08-20 04:33:05 字數 3861 閱讀 4163

——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 也就是...