前端從0單排之JS Day12筆記

2021-09-26 13:37:51 字數 4011 閱讀 4819

math稱為數學函式,但是它屬於物件型別

typeof math //=>"object"
之所以叫做數學函式,是因為math這個物件中提供了很多運算元學的方法

**abs** :取絕對值

math.abs(-1) // => 1

**ceil/floor**: 向上或者向下取整

math.ceil(10) // 10

math.ceil(10.01) // 11

math.ceil(-10.01) // -10

math.floor(10.999) // 10

math.floor(-10.999) // -11

**round**: 四捨五入

math.round(10.49) // 10

math.round(10.5) // 11

math.round(-10.49) // -10

math.round(-10.5) // -10

math.round(-10.51) //-11

**sqrt**: 開平方

math.sqrt(100) //10

**pow**: 取冪(n的m次方)

math.pow(2,10) // 1024

**max/min**: 獲取最大值和最小值

math.max(12,23,14,35,24,26,13) // 35

math.min(12,23,14,35,24,26,13) // 12

**pi** : 獲取圓周率

math.pi

**random**:獲取0-1之間的隨機小數

n-m整數

function randomnum(n,m)

getelementbyid

通過元素的id獲取指定的元素物件,使用的時候都是document.getelementbyid('')此處的document是限定了獲取元素的範圍,我們把它稱之為上下文(context)

getelementbyid的上下文只能document

因為嚴格意義上,乙個頁面的id是不能重複的,瀏覽器規定在整個文件中既可以獲取這個唯一的id

如果頁面中的id重複了,我們基於這個方法只能獲取到第乙個元素,後面相同id元素無法獲取

在ie6~7瀏覽器中,會把表單元素(input)的name屬性值當做id來使用(建議,以後使用表單元素的時候,不要讓name和id的值有衝突)

getelementsbytagname

[context].getelementsbytagname在指定的上下文中,根據標籤名獲取到一組元素集合(htmlcollection)

獲取的元素集合是乙個類陣列(不能直接的使用陣列中的方法)

它會把當前上下文中,子子孫孫(後代)層級內的標籤都獲取到(獲取的不僅僅是兒子級)

基於這個方法獲取到的結果永遠都是乙個集合(不管裡面是否有內容,也不管有幾項,它是乙個容器或者集合),如果想操作集合中具體的某一項,需要基於索引獲取到才可以

getelementsbyclassname

[context].getelementsbyclassname在指定的上下文中,基於元素的樣式類名(class=「***」)獲取到一組元素集合

真實專案中,我們經常是基於樣式類來給元素設定樣式,所以在js中,我們也會經常基於樣式類來獲取元素,但是此方法在ie6-8下不相容

來著:https:

0d756efa17c9

function

getelementsbyclass

(classname,context)

//ie6-8:

//把傳遞進來的樣式類名首位空格都去掉,再按照中間的空格把裡面每一項拆分成陣列

var classnameary=classname.

replace

(/^ +| +$/g,""

).split

(/ +/g);

var ary=

;//獲取指定上下文中的所有元素標籤,迴圈這些標籤, 獲取每乙個標籤的classname的字串

var nodelist=context.

getelementsbytagname

("*");

//獲取指定上下文中的所有元素標籤

for(

var i=

0,len=nodelist.length;iif(isok)

}return ary;

}

getelementsbyname

document.getelementsbyname()它的上下文也只能是document,在整個文件中,基於元素的name屬性值獲取一組節點集合(也是乙個類陣列)

在ie瀏覽器中(ie9及以下版本),只對表單元素的name屬性起作用(正常來說:我們專案中只會給表單元素設定name,給非表單元素設定name,其實是乙個不太符合規範的操作)

queryselector

[context].queryselector()在指定的上下文中基於選擇器(類似於css選擇器)獲取到指定的元素物件(獲取的是乙個元素,哪怕選擇器匹配了多個,我們只獲取第乙個)

queryselectorall

在queryselect的基礎上,我們獲取到選擇器匹配到的所有元素,結果是乙個元素集合(nodelist)

queryselector/queryselectorall都是不相容ie6-8瀏覽器的(不考慮相容的情況下,我們能用byid或者其他方法獲取,也盡量不要用這兩個,這兩個方法效能消耗較大)

document.head

獲取head元素物件

document.body

獲取body元素物件

document.documentelement

獲取html元素物件

需求:獲取整個瀏覽器一螢幕的寬度和高度(相容所有瀏覽器)

document.documentelement.clientwidth || document.body.clientwidth

document.documentelement.clientheight || document.body.clientheight

面試題:獲取當前頁面中所有id為haha的(相容所有的瀏覽器)

首先獲取當前文件中所有的html標籤

依次遍歷這些元素標籤物件,誰的id等於haha,我們就把誰儲存起來即可

function

queryallbyid

(id)

return ary;

}queryallbyid()

;

前端從0單排之JS Day8筆記

陣列也是物件資料型別的,也是由鍵值對組成的 var ary 12 23,34 結構 0 12,1 23 2 34 length 3 1.以陣列作為索引 屬性名 索引從零開始遞增 2.有乙個length屬性儲存的是陣列長度 ary 0 獲取第一項 ary ary.length 1 獲取最後一項 陣列中...

前端從0單排之JS Day14筆記

棧記憶體 作用域 提供乙個供js 自上而下執行的環境 都是在棧中執行的 由於基本資料型別值比較簡單,他們都是直接在棧記憶體中開闢乙個位置,把值直接儲存進去的 當棧記憶體被銷毀,儲存的哪些基本值也都跟著銷毀了 堆記憶體 引用值對應的空間 儲存引用型別值的 物件 鍵值對 函式 字串 當前堆記憶體釋放銷毀...

Python從0到1之異常

當檢測到錯誤時,直譯器無法繼續執行了,反而出現了一些錯誤提示,就是異常 try 可能發生錯誤的 except 如果出現異常執行的 try f open test.txt r except f open test.txt w try 1 0except zerodivisionerror print ...