js 學習總結,可利用其與原生代碼交互

3C School 學習 js ,html 的最佳網站 http://www.runoob.com/js/js-tutorial.htmljavascript


js 基礎, js HTML DOM 對象的操做html

js 高級教程 , js 瀏覽器 BOMjava

js 庫 jQuery ,Prototype node

js 實例正則表達式

js 對象實例, 瀏覽器對象實例, HTML DOM 實例chrome

js 函數 包裹在花括號中的代碼塊編程

function functionname() json

{windows

執行代碼,js 對大小寫敏感 , function 必須小寫瀏覽器

}

js 做用域 可訪問變量的集合

js 中,對象和函數一樣是變量

函數做爲變量 實現函數式編程;

 js 局部變量 和全局變量 , 全局變量有全局做用域,網頁中全部腳本和函數都可使用

var carName = 「volvo」

// 此處可調用 carName 變量

function myFunction() {

// 函數內可調用 carName 變量

}

js 變量聲明週期, 在聲明時,初始化, 局部變量在函數執行完畢後銷燬,全局變量在頁面關閉後銷燬

在 HTML 中,全局變量 window 對象,全部數據變量都屬於 window 對象

window.carName

全局變量, 或者函數 能夠覆蓋 window 對象的變量或者函數;

局部變量,包括 window 對象能夠覆蓋全局變量和函數

HTML 事件 是發生在 HTML 元素的事情,

例如: html 頁面完成加載, html input 字段改變時, html 按鈕被點擊

<button onclick = 'getElementById("demo」).innerHTML =Date()’>The time is?</button>

<button onclick="this.innerHTML=Date()">如今的時間是?</button>

this 關鍵字 指向自身的這個嚴肅

用js 寫 html 元素 document.write(「<p>」 + txt.length + 「</p>」);

=== 絕對等於 ,(值,類型均相等)

!== 絕對不等於(值或類型不相等)

js 中像 c 語言

while 循環 做死循環時使用 先判斷, 後執行

do/while 先執行一次代碼塊,後判斷

for 循環 


js 中的 typeof

null 表示 「什麼都沒有」

null 是一個只有一個值的特殊類型,表示一個空對象引用

能夠設置 null 來清空對象

var person = null;

能夠設置 undefined 來清空對象;

var person = undefined // 值爲 undefined ,type is undefined

在 JavaScript 中, undefined 是一個沒有設置值的變量。

typeof 一個沒有值的變量會返回 undefined

類型不一樣, 值是相同的

typeof undefined             // undefinedtypeof null                  // objectnull === undefined           // falsenull == undefined            // true

js 中 5 +3+2 中類型

5分別爲string , number, boolean, object,function

3中對象類型, Object,Date,Array

2個不包含任何值的數據類型: null ,undefined

用 typeod 操做符 ,來查看 js 變量的數據類型

typeof "John"                 // 返回 string typeof 3.14                   // 返回 numbertypeof NaN                    // 返回 number  not a number 縮寫typeof false                  // 返回 booleantypeof [1,2,3,4]              // 返回 objecttypeof {name:'John', age:34}  // 返回 objecttypeof new Date()             // 返回 objecttypeof function () {}         // 返回 functiontypeof myCar                  // 返回 undefined (if myCar is not declared)typeof null                   // 返回 object

js 存在內省的機制

js constructor 構造器

constructor 屬性返回全部 javaScript 變量的構造函數

function isArray(myArray) {    return myArray.constructor.toString().indexOf("Array") > -1;}

「John」.constructor //返回函數 String ()

(3.14).constructor  //返回 Number()

false.constructor   // 返回函數 Boolean()

[1,2,3,4].constructor //返回函數 Array()

(123).toString()

js 中的正則表達式

var str = "Visit w3cschool";

var n = str.search(/w3cschool/i);


結果爲 6 


search() 方法使用字符串


<p></p> 標籤之間稱爲 innerHTML



alert 能夠有瀏覽器的設置提供過來

<head>

<script>

var txt="";

function message()

{

try

  {

  adddlert("Welcome guest!");

  }

catch(err)

  {

  txt="本頁有一個錯誤。\n\n";

  txt+="錯誤描述:" + err.message + "\n\n";

  txt+="點擊肯定繼續。\n\n";

  alert(txt);

  }

}

</script>

</head>


<body>

<input type="button" value="查看消息" onclick="message()">

</body>


debugger 關鍵字

debugger 關鍵字

debugger 關鍵字用於中止執行 JavaScript,並調用調試函數。

這個關鍵字與在調試工具中設置斷點的效果是同樣的。

若是沒有調試可用,debugger 語句將沒法工做。

開啓 debugger ,代碼在第三行前中止執行。

js 表單驗證簡單實現


function validateForm(){var x=document.forms["myForm"]["fname"].value;if (x==null || x=="")  {  alert("First name must be filled out");  return false;  }}

<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post">First name: <input type="text" name="fname"><input type="submit" value="Submit"></form>


js 的保留關鍵字 和 ES5 版本;

注意避免 js 的對象,屬性和方法, java 保留關鍵字, windows 保留關鍵字

html 事件句柄

onblur , onclick onkeydown


非標準的 js

const 關鍵字, 用於定義變量, 一些 ks 引擎 把 const 看成 var 的同義詞. 另外一些引擎則把 const 只讀變量的定義

const  是 javaScript 的擴展, js 支持它用在 firefox 和  chrome 裏面 ,建議不要使用


使用 javaScript 內置函數 json.parse() 將字符串轉換爲 JavaScript 對象

var text = ‘「employees」'


json.parse ()

JSON.stringify()


<a href="javascript:void(0)">單擊此處什麼也不會發生</a>

href = 「#」 與 href = 「javascript:void(0)」 的區別

# 包含一個位置信息, 默認的錨# top 也就是網頁的上端;

在頁面很長的時候會使用#來定位頁面的具體位置, 格式:#+ id

若是要定義一個死連接請使用 javascript:void(0).


<a href = 「#pos」>點我定位到指定位置</a>

<br><br><br><p id = 「pos」>尾部定位點</p>


js 代碼規範

1.變量和函數的命名規則


UIfocusEnvironment


咱們使用 HTML DOM 來得到 id="header" 的元素

JavaScript 更改此元素的內容 (innerHTML)


<script>

document.getElementById("p2").style.color="blue";

</script>

獲取 id = 「p2」的元素,獲取其屬性,並修改 color 的顏色 style.color 



獲取 id = 「id1」的 html 元素樣式

<button type="button" 

onclick="document.getElementById('id1').style.color='red'">

Click Me!</button>


js html 的事件實例

HTML 事件的例子:

  • 當用戶點擊鼠標時
  • 當網頁已加載時
  • 當圖像已加載時
  • 當鼠標移動到元素上時
  • 當輸入字段被改變時
  • 當提交 HTML 表單時
  • 當用戶觸發按鍵時


this 關鍵字獲取標籤自己 「this.innerHTML = ‘Ooops!’」 

<h1 onclick = 「this.innerHTML =‘Ooops!'」>點我</h1>


添加監聽回調

document.getElementById(「myBtn’").addEventListener(「clicked」, displaydate);

 addEventListener() 方法用於向指定元素添加事件句柄。

addEventListener() 方法添加的事件句柄不會覆蓋已存在的事件句柄。

你能夠向一個元素添加多個事件句柄。

你能夠向同個元素添加多個同類型的事件句柄,如:兩個 "click" 事件。

你能夠向任何 DOM 對象添加事件監聽,不單單是 HTML 元素。如: window 對象。

 addEventListener() 方法能夠更簡單的控制事件(冒泡與捕獲)。

當你使用 addEventListener() 方法時, JavaScript 從 HTML 標記中分離開來,可讀性更強, 在沒有控制HTML標記時也能夠添加事件監聽。

你可使用 removeEventListener() 方法來移除事件的監聽。

addEventListener() 方法容許你在 HTML DOM 對象添加事件監聽, HTML DOM 對象如: HTML 元素, HTML 文檔, window 對象。或者其餘支出的事件對象如: xmlHttpRequest 對象。

js 控制事件傳遞的方向 都是從 html 文檔裏面去讀取 正向鏈表 爲捕獲capture     true  反向鏈表爲冒泡 false

默認值爲 false, 即冒泡傳遞 ,即 和 iOS 同樣 



瀏覽器適配: 

var x = document.getElementById("myBtn");

if (x.addEventListener) {                    // 全部主流瀏覽器,除了 IE 8 及更早版本

    x.addEventListener("click", myFunction);

} else if (x.attachEvent) {                  // IE 8 及更早版本

    x.attachEvent("onclick", myFunction);

}


<div id="div1">

<p id="p1">這是一個段落。</p>

<p id="p2">這是另外一個段落。</p>

</div>


向 已存在的元素中添加元素


<script>

var para=document.createElement("p");

var node=document.createTextNode("這是一個新段落。");

para.appendChild(node);


var element=document.getElementById("div1");

element.appendChild(para);

</script>