1. 程式人生 > >js 學習總結,可利用其與原生程式碼互動

js 學習總結,可利用其與原生程式碼互動

js 基礎, js HTML DOM 物件的操作

js 高階教程 , js 瀏覽器 BOM

js 庫 jQuery ,Prototype 

js 例項

js 物件例項, 瀏覽器物件例項, HTML DOM 例項

js 函式 包裹在花括號中的程式碼塊

function functionname() 

{

執行程式碼,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 ()

<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>