6.js-Web-API-DOM、BOM

js基礎(chǔ)知識:基于ECMA 262標(biāo)準(zhǔn)(規(guī)定基礎(chǔ)語法七扰、規(guī)則)

--變量類型和計(jì)算
--原型和原型鏈
--閉包和作用域
--異步和單線程
--其他(如日期没龙、Math铺厨、各種常用API)

特點(diǎn):表面看來并不能用于工作中開發(fā)代碼
內(nèi)置函數(shù):Object Array Boolean String...
內(nèi)置對象:Math JSON...

js-web-API:基于W3C標(biāo)準(zhǔn)(在規(guī)則上怎么用)

w3c標(biāo)準(zhǔn)中關(guān)于JS的規(guī)定有:
--DOM操作(增刪改查,修改網(wǎng)頁的結(jié)構(gòu)硬纤,頁面的動(dòng)態(tài)效果)
--BOM操作(獲取瀏覽器特性解滓、當(dāng)前屏幕尺寸寬高、當(dāng)前地址欄地址)
--事件綁定(click筝家,keyon洼裤,mouseenter,mouseup等)
--ajax請求(包括http協(xié)議)
--存儲

瀏覽器即要遵循瀏覽器對js的運(yùn)行的定義溪王,又要遵循ECMA262腮鞍,又要遵循w3c標(biāo)準(zhǔn)值骇。
1.頁面彈框是 window.alert(123);,瀏覽器需要做:
--定義一個(gè)window全局變量,對象類型
--給它定義一個(gè)alert屬性移国,屬性值是一個(gè)函數(shù)
2.獲取元素document.getElementById(id);瀏覽器需要:
--定義一個(gè)document全局變量吱瘩,對象類型
--給它定義一個(gè)getElementById的屬性,屬性值是一個(gè)函數(shù)
3.W3C標(biāo)準(zhǔn)沒有規(guī)定任何Js基礎(chǔ)相關(guān)的東西
--不管什么變量類型迹缀、原型使碾、作用域和異步(ECMA 262)
--只管定義用于瀏覽器中JS操作頁面的API和全局變量
4.js內(nèi)置的全局函數(shù)和對象有哪些:(可以拿來直接用的)
--之前講過的 Object Array Boolean String Math JSON等
--剛剛提到的 window document 
--未定義的全局變量,如:navigator.userAgent
5.常說的JS(瀏覽器執(zhí)行的JS)包含兩部分:
--JS基礎(chǔ)知識(**ECMA262標(biāo)準(zhǔn)**)
--JS-Web-API(**W3C標(biāo)準(zhǔn)**)

/--------------DOM操作--------------

Document Object Model

1.DOM是哪種基本的數(shù)據(jù)結(jié)構(gòu)裹芝?
--樹
2.DOM操作的常用API有哪些部逮?
--獲取DOM節(jié)點(diǎn),以及節(jié)點(diǎn)的property和Attribute
--獲取父節(jié)點(diǎn)嫂易,獲取子節(jié)點(diǎn)
--新增節(jié)點(diǎn)兄朋,刪除節(jié)點(diǎn)
3.DOm節(jié)點(diǎn)的attr和property有何區(qū)別?
--property只是一個(gè)JS對象的屬性的修改
--Attribute是對html標(biāo)簽屬性的修改

1怜械、DOM的本質(zhì)
(瀏覽器把拿到的html代碼颅和,結(jié)構(gòu)化成瀏覽器可識別、js可操作的一個(gè)模型而已)

--XML可擴(kuò)展的描述語言缕允,可以描述任何結(jié)構(gòu)化的數(shù)據(jù)
樹峡扩,有一個(gè)主干,有很多分支障本,分支在有分支教届;
<?xml version="1.0" encoding="UTF-8">
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <boby>Don't forget me this weekend!</body>
    <other>
        <a></a>
        <b></b>
    </other>
</note>

--html是XML的一種特殊類型,是一種特殊結(jié)構(gòu)驾霜,和XML一樣的規(guī)則
<!DOCTYPE html>
<html>
<head>
    <meta charset ="UTF-8">
    <title>Document</title>
</head>
<body>
    <div>
        <p>this is p!</p>
    </div>
</body>
</html>

2案训、DOM節(jié)點(diǎn)操作

--獲取DOM節(jié)點(diǎn)

    var div1 = document.getElementById('div1');//元素
    var divList  =document.getElementsByTagName('div'); //集合
    console.log(divList.length);
    console.log(divList[0]);
    
    var containerList = document.getElementsByClassName('.container');//集合
    var pList =  document.querySelectorAll('p');//集合
    

--property(改的是js對象的一個(gè)標(biāo)準(zhǔn)屬性)

    eg:1.
    var pList =  document.querselectorAll('p');
    var p = pList[0];
    console.log(p.style.width); //獲取樣式
    p.style.width = '100px';  //修改樣式
    console.log(p.className); //獲取class
    p.className = 'p1'; //修改class
    
    //獲取nodeName 和 nodeType
    console.log(p.nodeName);
    console.log(p.nodeType);
    
    eg:2. 
    x是obj的一個(gè)property
    var obj = {x:100,y:200};
    console.log(obj.x); // 100
    
    nodeName是p的一個(gè)property
    var p = document.getElementsByTagName('p')[0];
    console.log(p.nodeName); // P
    
    // property
    var div = document.getElementById('div1');
    console.log(div1.className);
    div1.className = 'abc';
    console.log(div1.className);
    
    
--Attribute(改的html代碼文檔里面的標(biāo)簽的屬性)
    var pList = document.queryselectorAll('p');
    var p = pList[0];
    p.getAttribute('data-name');
    p.setAttribute('data-name','imocc');
    p.getAttribute('style');
    p.setAttribute('style','font-size:30px');

3、DOM結(jié)構(gòu)操作(樹結(jié)構(gòu))

--新增節(jié)點(diǎn)

    var div1 = document.getElementById('div1');
    
    //添加新節(jié)點(diǎn)
    var p1= document.createElement('p');
    p1.innerHTML = 'this is p1';
    div1.appendChild(p1); //添加新創(chuàng)建的元素
    
    //移動(dòng)已有的節(jié)點(diǎn)
    var p2 = document.getElementById('p2');
    div1.appendChild(p2);

--獲取父元素
--獲取子元素
--刪除節(jié)點(diǎn)
    var div1 = document.getElementById('div1');
    var parent = div1.parentElement;
    
    var child = div1.childNodes;
    
    console.log(child[0].nodeType); // text 3
    console.log(child[1].nodeType); // div 1
   
    console.log(child[0].nodeName); // text #text
    console.log(child[1].nodeName; // div  div
    
    div1.removeChild(child[1]);

/---------------BOM的操作--------------------

Browser Object Model 瀏覽器對象模型

1.如何檢測瀏覽器的類型
2.拆解url的各部分

1.navigator
2.screen
3.location
4.history

eg:1粪糙、navigator & screen

//navigator
var ua = navigator.userAgent;
var isChrome = ua.indexOf('chrome');
console.log(isChrome); 

//screen
console.log(screen.width);
console.log(screen.height);

2.location & history

//location
console.log(location.href);  //獲取頁面的地址
location.; //修改頁面的地址

console.log(location.protocol); //協(xié)議 'http:' 'https:'
console.log(location.host);  //域名 'www.baidu.com'
console.log(location.pathname); //路徑 '/learn/199.html'
console.log(location.search); //url的强霎?后面查詢字符串、參數(shù) ?cid=99&a=b
console.log(location.hash);  //url中#后面的參數(shù) #mid=100

//history
history.back(); //返回
history.forward(); //前進(jìn)后退
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蓉冈,一起剝皮案震驚了整個(gè)濱河市城舞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌寞酿,老刑警劉巖家夺,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異伐弹,居然都是意外死亡秦踪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來椅邓,“玉大人柠逞,你說我怎么就攤上這事【澳伲” “怎么了板壮?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長合住。 經(jīng)常有香客問我绰精,道長,這世上最難降的妖魔是什么透葛? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任笨使,我火速辦了婚禮,結(jié)果婚禮上僚害,老公的妹妹穿的比我還像新娘硫椰。我一直安慰自己,他們只是感情好萨蚕,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布靶草。 她就那樣靜靜地躺著,像睡著了一般岳遥。 火紅的嫁衣襯著肌膚如雪奕翔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天浩蓉,我揣著相機(jī)與錄音派继,去河邊找鬼。 笑死捻艳,一個(gè)胖子當(dāng)著我的面吹牛互艾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播讯泣,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阅悍!你這毒婦竟也來了好渠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤节视,失蹤者是張志新(化名)和其女友劉穎拳锚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寻行,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡霍掺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杆烁。...
    茶點(diǎn)故事閱讀 40,769評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡牙丽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出兔魂,到底是詐尸還是另有隱情烤芦,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布析校,位于F島的核電站构罗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏智玻。R本人自食惡果不足惜遂唧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吊奢。 院中可真熱鬧盖彭,春花似錦、人聲如沸事甜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逻谦。三九已至掌实,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間邦马,已是汗流浹背贱鼻。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滋将,地道東北人邻悬。 一個(gè)月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像随闽,于是被迫代替她去往敵國和親父丰。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 之前通過深入學(xué)習(xí)DOM的相關(guān)知識掘宪,看了慕課網(wǎng)DOM探索之基礎(chǔ)詳解篇這個(gè)視頻(在最近看第三遍的時(shí)候蛾扇,準(zhǔn)備記錄一點(diǎn)東西...
    微醺歲月閱讀 4,488評論 2 62
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,760評論 1 92
  • Web前端技術(shù)由html魏滚、css和 javascript 三大部分構(gòu)成镀首,是一個(gè)龐大而復(fù)雜的技術(shù)體系,其復(fù)雜程度不低...
    WEB攻程獅閱讀 1,879評論 2 116
  • 概念:把公司要求的目標(biāo)鼠次,變成員工可執(zhí)行的任務(wù)更哄。 把目標(biāo)分解為執(zhí)行任務(wù)的過程芋齿,需要從時(shí)間維度...
    自如得己閱讀 287評論 0 1
  • 90后的麗麗,是一名畢業(yè)工作三年的白領(lǐng)成翩,這個(gè)年她回家過的并不太平觅捆,麗麗想著,年級大了捕传,自己有些事情是越來越看不懂了...
    真愛521閱讀 267評論 0 0