javascript
js中当等于最小值是让代码不执行_JavaScript中最最基础的知识点
JavaScript 中有很多很常用的也很基礎(chǔ)的知識(shí)點(diǎn)需要我們牢牢記住,倒背如流,這樣在開發(fā)的時(shí)候才能得心應(yīng)手.
本文主要總結(jié)了DOM,Array,String,Math的一些常用方法,還有一些JS編程的基本常識(shí).
1. DOM
1.1 獲取DOM元素1
2
3
4
5
6
7
8document.getElementById
document.getElementsByName
document.getElementsByTagName
document.getElementsByClassName
document.documentElement
document.body
document.querySelector
document.querySelectorAll
1.2 DOM節(jié)點(diǎn)nodetypenodeNamenodeValue元素節(jié)點(diǎn)1大寫的標(biāo)簽名null
文本節(jié)點(diǎn)3#text文本內(nèi)容
注釋節(jié)點(diǎn)8#comment注釋內(nèi)容
document9#documentnull
1.3 DOM節(jié)點(diǎn)屬性1
2
3
4
5
6
7parentNode
childNodes
children
firstChild (firstElementChild)
lastChild (lastElementChild)
previousSibling (previousElementSibling)
nextSibling (nextElementSibling)
1.4 DOM操作1
2
3
4
5
6
7
8
9createElement
appendChild
insertBefore
replaceChild
removeChild
cloneNode(true/false)
getAttribute
setAttribute
removeAttribute
2. Array 數(shù)組常用方法1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
271.push
2.pop
3.shift
4.unshift
5.splice
splice(n,m) 刪除 返回值:刪除的內(nèi)容以新數(shù)組的形式返回
splice(n,0,x) 添加
splice(n,m,x) 替換
6.slice
查找 slice(n,m)
克隆 slice()/ slice(0)
7.concat
數(shù)組拼接 ary1.concat(ary)
克隆 ary1.concat();
8.toString()
9.join() eval()
10.sort(function(a,b){return a-b})
11.reverse()
12.indexOf() 找到返回對(duì)應(yīng)內(nèi)容的索引 找不到-1;
13.forEach()
14.map();
15.some();
16.every();
17.forEach();
18.filter();
19.reduce();
20.includes();
3. 字符串常用方法1
2
3
4
5
6
7
8
9
10
11
12
13
141.charAt
2.charCodeAt
3.indexOf()
4.lastIndexOf();
5.substr(n,m) 從索引n開始,找m個(gè)
6.substring(n,m) 從索引n開始,找到索引m,不包含索引m
7.slice(n,m)從索引n開始,找到索引m,不包含索引m; 可以取負(fù)值
8.split() 字符串轉(zhuǎn)數(shù)組
9.toUpperCase() 轉(zhuǎn)大寫
10.toLowerCase() 轉(zhuǎn)小寫
11.replace('','') 替換
12.search() 查找,找到返回索引,找不到-1;
13.match() 匹配
...
4. Math 常用方法1
2
3
4
5
6
7
8
9Math.random()
Math.round() 四舍五入
Math.floor() 向下取整
Math.ceil() 向上取整
Math.abs() 取絕對(duì)值
Math.min() 取最小值
Math.max() 取最大值
Math.sqrt() 開平方
Math.pow() 冪
5. 為何學(xué)習(xí)預(yù)解釋如果函數(shù)中未定義此變量,為何還能拿到
函數(shù)中定義的變量,但是在賦值之前,我們?nèi)匀荒苣玫街?#xff0c;但是拿到是undefined
為何把var去掉進(jìn)程還能正常執(zhí)行;
在定義函數(shù)之前,調(diào)用函數(shù),也能執(zhí)行函數(shù),為什么?
最終目的:寫代碼時(shí),思路更加清楚,知道為何進(jìn)程能正常執(zhí)行,為何會(huì)報(bào)錯(cuò)?避免很多不正規(guī)的寫法,因?yàn)檫@些不正規(guī)的寫法很容出錯(cuò),而且不會(huì)報(bào)錯(cuò)
6. 預(yù)解釋
概念:在當(dāng)前作用域下,在JS代碼執(zhí)行之前,瀏覽器會(huì)對(duì)帶var和帶function進(jìn)行提前聲明或者定義;
聲明:告訴瀏覽器有這么一個(gè)變量,但是沒有賦值,沒賦值拿到的undefined;
定義:對(duì)已經(jīng)聲明過的這個(gè)變量進(jìn)行賦值
關(guān)于變量和函數(shù)預(yù)解釋階段的不同帶var :只聲明不定義
帶function:聲明+定義;
7. 函數(shù)
定義步驟:1.開辟一個(gè)空間地址
2.把函數(shù)體中所有JS代碼做為字符串存在這個(gè)空間中
3.把空間地址賦值給函數(shù)名
函數(shù)調(diào)用步驟:
8. 作用域鏈
當(dāng)函數(shù)執(zhí)行的時(shí)候,形成一個(gè)私有作用域A,查看作用域中的這個(gè)變量是否為私有變量:
1)如果是私有變量:這個(gè)函數(shù)中的所有此變量,跟外面沒有任何關(guān)系;
2)如果不是私有變量:如果是獲取;往上級(jí)作用域進(jìn)行查找,如果找到,彈出,找不到繼續(xù)往上級(jí)作用域進(jìn)行查找…最終一直找到window,如果還沒有,報(bào)錯(cuò)
如果是設(shè)置;往上級(jí)作用域進(jìn)行查找,如果找到,重新賦值;找不到繼續(xù)往上級(jí)作用域進(jìn)行查找…最終一直找到window,如果還沒有,他就是window上的全局屬性;
9. 關(guān)于作用域
全局作用域:當(dāng)瀏覽器加載html頁(yè)面的時(shí)候,會(huì)形成一個(gè)供JS代碼執(zhí)行的環(huán)境;在這個(gè)全局作用域下,所有的全局變量都是window上的全局屬性; 所有的全局函數(shù),都是window上的全局方法;
私有作用域: 只在某個(gè)范圍內(nèi)有效,大多指函數(shù)內(nèi)部
10. 帶var和不帶var的區(qū)別
帶var: 1)會(huì)進(jìn)行預(yù)解釋 2)如果是全局變量,window的全局屬性
不帶var: 1)不會(huì)進(jìn)行預(yù)解釋 2)如果是設(shè)置;往上級(jí)作用域進(jìn)行查找,如果找到,重新賦值;找不到繼續(xù)往上級(jí)作用域進(jìn)行查找。。。。最終一直找到window,如果還沒有,他就是window上的全局屬性;
11. 私有變量有且只有兩種函數(shù)中帶var的
形參
12. 關(guān)于預(yù)解釋的無(wú)節(jié)操:自執(zhí)行函數(shù)不需要預(yù)解釋,當(dāng)代碼執(zhí)行到他的時(shí)候;聲明+定義+調(diào)用同步完成;
已經(jīng)聲明過的變量,不需要重新聲明,只需要重新賦值;
對(duì)于帶var的,我們之對(duì)等號(hào)左邊,進(jìn)行聲明;不運(yùn)行等號(hào)右邊的(即只聲明,不定義)
if 條件語(yǔ)句,無(wú)論條件是否成立,都會(huì)進(jìn)行預(yù)解釋
注意:在 if條件語(yǔ)句中不要定義函數(shù);因?yàn)楦鞔鬄g覽器對(duì)if語(yǔ)句的預(yù)解釋不同;很容易出錯(cuò);
return返回值不進(jìn)行預(yù)解釋;return下面的語(yǔ)句雖然不執(zhí)行,但是會(huì)進(jìn)行預(yù)解釋;
13. 閉包的作用防止變量名沖突
在閉包中對(duì)全局變量重新賦值,并且不影響全局變量
可以通過window.xx改變?nèi)肿兞?#xff1b;
閉包可以用來(lái)封裝;可以通過window.xxx=函數(shù)名;
14. 函數(shù)當(dāng)作表達(dá)式賦值給變量時(shí)注意事項(xiàng):
當(dāng)函數(shù)做為表達(dá)式賦值給一個(gè)變量的時(shí)候,是按照變量的預(yù)解釋機(jī)制進(jìn)行預(yù)解釋的;
這個(gè)變量名,是不是就相當(dāng)于函數(shù)名,雖然不能在上面調(diào)用,但是可以在函數(shù)賦值后調(diào)用;
15. 內(nèi)存
js中內(nèi)存:堆內(nèi)存 和 棧內(nèi)存
棧內(nèi)存:提供了一個(gè)供JS代碼執(zhí)行的環(huán)境
環(huán)境:全局環(huán)境,私有環(huán)境
堆內(nèi)存:存放是引用數(shù)據(jù)類型的值;對(duì)象:存的對(duì)象的屬性名和屬性值; 函數(shù):把函數(shù)體中的JS代碼做為字符串存在這個(gè)空間中
16. 內(nèi)存釋放
堆內(nèi)存釋放:只要堆內(nèi)存被變量占用,就無(wú)法釋放; var a=xxff00; a=null;
解決措施:讓 變量名=null; 即,讓變量名等于空指針,當(dāng)瀏覽器空閑的時(shí)候,就會(huì)把指向空指針的變量收回,瀏覽器的這種回收機(jī)制,叫做垃圾回收機(jī)制;
棧內(nèi)存:
全局作用域:當(dāng)瀏覽器加載完HTML頁(yè)面的時(shí)候,就形成一個(gè)全局作用域;只有關(guān)閉頁(yè)面,才能釋放;
如果不關(guān)閉頁(yè)面,那么全局作用域下的所有變量和內(nèi)容都無(wú)法得到釋放;
我們唯一能做的就是減少全局變量;
私有作用域:當(dāng)函數(shù)執(zhí)行的時(shí)候,形成一個(gè)私有作用域;一般情況下,當(dāng)函數(shù)執(zhí)行完成的時(shí)候私有作用域就被釋放;
有兩種情況不會(huì)被釋放:如果私有函數(shù)中有東西被函數(shù)外面的變量或者其他元素占用的時(shí)候,此函數(shù)不能釋放;
不立即釋放;這個(gè)函數(shù)執(zhí)行完成的時(shí)候,會(huì)返回一個(gè)函數(shù),被返回的這個(gè)函數(shù)還需要再執(zhí)行一次,等返回的函數(shù)執(zhí)行完成,所有的函數(shù)才能釋放;
17. ++n 和 n++ 的區(qū)別
++n 先++;再運(yùn)算; 15+(++n)=16; 15+(++n)=17;
n++ 先運(yùn)算,再++; 15+n++=15; 15+n++=16;
注意:再++時(shí),只是 n 自身的++;跟整個(gè)運(yùn)算沒有關(guān)系;
18. 關(guān)于this的小總結(jié)當(dāng)觸發(fā)一個(gè)元素身上的事件,執(zhí)行對(duì)應(yīng)的函數(shù)的時(shí)候,函數(shù)中的this,指向當(dāng)前這個(gè)元素;
當(dāng)函數(shù)執(zhí)行的時(shí)候,”.”前面是誰(shuí),this就是誰(shuí)
自執(zhí)行函數(shù)中的this,永遠(yuǎn)都是window;
總結(jié)
以上是生活随笔為你收集整理的js中当等于最小值是让代码不执行_JavaScript中最最基础的知识点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: labview霍夫曼编码_哈夫曼编解码压
- 下一篇: java后台接收数据格式_Java后台基