参考资料:http://www.w3school.com.cn/js/index.asp
javascript
额,发现 http://www.w3cschool.cc 这里的资料彷佛比上面那个更新鲜一些...php
1、教程html
js是一种轻量级的编程语言,可插入html页面中,并由浏览器执行。java
(1)简介
node
<script> document.write("<h1>标题一</h1>"); function al(){ // alert("button clicked."); // document.getElementById("aa").innerHTML = "<h2>O(∩_∩)O哈哈~</h2>"; if(isNaN(document.getElementById("num").value)){ alert("not num"); } } function am(){ document.getElementById("aa").style.color = "#006060"; } </script> <input type="text" name="num" id="num" /> <input type="button" value="submit" onclick="al()" /> <input type="button" value="submit" onclick="am()" /> <div id="aa"></div>
(2)实现express
// <script>标签, 在html中,使用 。type="text/javascript",不用添加。JS是现代浏览器以及HTML5中的默认脚本。 // 向html中,输入文本 document.write("<h1>This is a heading.</h1>"); // JS 函数和事件 <script> function myFunction(){ // 必定要注意id名字!!! 将demo写成dome了 ... document.getElementById("demo").innerHTML="My First JS Function."; } </script> <div id="demo"> ... </div> <button type="button" onclick="myFunction()">Try it.</button> // 输出 document.getElementById(id); // 来得到某个html元素的访问 innerHTML; // 获取或插入元素内容 // 写到控制台 console.log("...") //
(3)语句编程
// 浏览器会按照编写的顺序来执行每条语句。 // js对大小写敏感
(4)注释json
// 第一种注释方法 /* 第二种注释方法 */
(5)变量数组
// 变量 var x = 2; var y = 3; var z = x + y; // 声明(建立)JS变量 var carname; // 一条语句,多个变量 var name="Gates", age=56, job="CEO"; // Value = undefined; var carname; // carname的值将是 undefined
(6)数据类型浏览器
字符串,数字,布尔,数组,对象,Null,Undefined
JS拥有动态类型。相同的变量,可用做不一样的类型。
var x ; var x = 6; var carname = "Bill Gates"; var carname = 'Bill Gates'; var x = true; var y = false; // 数组 var cars = new Array(); cars[0] = "Audi"; cars[1] = "BMW"; // 或者使用 var cars = new Array("Audi", "BMW"); // 对象 // 对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式(name: value)来定义。属性由逗号分隔 var person = { firstname : "Bill", lastname : "Gates", id : 5566 }; // 对象属性的访问 person.lastname; person["lastname"] // 声明变量类型 var carname = new String; var x = new Number; var y = new Boolean; var cars = new Array; var person = new Object;
(7)对象
JS中全部事物都是对象:字符串,数字,数组,日期等待
在JS中,对象时拥有属性和方法的数据。
属性:与对象有关的值。方法:可以在对象上执行的动做。
// 访问对象的属性 objectName.propertyName // 访问对象的方法 objectName.methodName
(8)函数
函数是由事件驱动的或者当他被调用时执行的可重复使用的代码块。
function functionname(){ // 执行代码 ... } // 调用带参数的函数 function myFunction(var1, var2){ // 执行代码 ... } <button onclick="myFunction("Bill Gates", "CEO")">点击这里</button> // 带有返回值的函数 function myFunction(){ // 执行代码 ... return x; } // 变量的生存期 // 局部变量会在函数运行之后被删除 // 全局变量会在页面关闭后被删除
(8-1)事件
HTML事件是发生在HTML元素上的事情。
<button onclick="document.getElementById("demo").innerHTML=Date()">The time is ?</button> // 常见事件 onchange // HTML元素改变 onclick // 用户点击HTML元素 onmouseover // 用户在一个HTML元素上移动鼠标 onmouseout // 用户从一个HTML元素上移开鼠标 onkeydown // 用户按下键盘按键 onload // 浏览器已完成页面加载
(8-2)字符串
字符串可使插入到引号中的任何字符。可使用单引号或者双引号。
// 可使用索引位置来访问字符串的每一个字符 var carname = "Volvo XC60"; var character = carname[7]; // 字符串的长度 var sln = carname.length // 特殊字符 "\""; // 进行转义
(9)运算符
+,-,*,/,%,++,--
=,+=,-=,*=,/=,%=
(10)比较
// 比较运算符 == 等于 === 全等(值和类型) !=, >, <, >=, <= // 逻辑运算符 && and || or ! not // 条件运算符 variablename = (condition)?value1:value2;
(11)If...Else
if (条件1){ // ... } else if (条件2){ // ... } else { // ... }
(12)Switch
switch(n){ case 1: // ... break; case 2: // ... break; // ... default: // ... }
(13)For
for (var i=0; i<cars.length; i++){ document.write(cars[i] + "<br>"); }
(14)While
while (条件){ // ... } do{ // ... } while(条件);
(15)Break
break语句跳出循环。continue用于跳过循环中的一个迭代。
(16)错误
try // 语句测试代码块的错误 catch // 语句处理错误 throw // 语句建立自定义错误 try{ // 在这里运行代码 } catch(err){ // 在这里处理错误 } // 简单示例 function mm(){ try{ alelrt("welcome guest!"); // alert() } catch(err){ alert(err.message); } }
(17)验证
js可用来在数据被送往服务器前对HTML表单中的这些输入数据进行验证。
典型:①是否已填写表单中的必填项 ②输入的邮件是否合法 ③书否输入合法日期 ④是否在数据域(numeric field)中输入了文本
<script> function validate_form(){ // 获取当前页面forms,中的元素,的value var x = document.forms["form_a"]["name"].value; if(x == null || x == ""){ alert("不能为空!"); return false; } else { return true; } } </script> <form action="action.php" name="form_a" onsubmit="return validate_form()" method="post"> 用户名: <input type="text" name="name" /> <input type="submit" value="Submit"> </form>
(18)JSON
json是JavaScript Object Notation。是一种轻量级的数据交换格式。
// 建立JavaScript字符串 var text = '{ "employees" : [' + '{ "firstName":"John" , "lastName":"Doe" },' + '{ "firstName":"Anna" , "lastName":"Smith" },' + '{ "firstName":"Peter" , "lastName":"Jones" } ]}'; // 使用JS内置函数 JSON.parse() 将字符串转换为 JavaScript 对象 var obj = JSON.parse(text);
(19)void
常常使用到 javascript:void(0) 这样的代码。
<a href="javascript:void(0)">单击此处什么也不会发生</a> // href="#" 与 href="javascript:void(0)" 的区别 // #包含了一个位置信息,默认锚的位置是 #top 也就是网页的上端。 // 而JavaScript:void(0),仅仅表示一个死连接
2、HTML DOM
(1)DOM简介
经过HTML DOM,能够访问JavaScript HTML 文档的全部元素。
当网页被加载时,浏览器会建立页面的文档对象模型(Document Object Model)。
查找HTML元素:①经过id ②经过标签名 ③经过类名
(2)HTML
// 改变HTML输出流 document.write(Date()); // 改变HTML内容 <p id="p1">Hello World</p> <script> document.getElementById("p1").innerHTML = "New text!"; </script> // 改变HTML属性 <img id="image" src="smiley.gif"> <script> document.getElementById("image").src = "landscape.jpg"; </script>
(3)CSS
改变HTML元素的样式
document.getElementById(id).style.property = new style; // 例子 <p id="p2">Hello World!</p> <script> document.getElementById("p2").style.color = "blue"; </script>
(4)事件
HTML DOM 使JavaScript有能力对HTML事件做出反应。
能够向HTML事件属性添加JavaScript代码。
<p id="p1" onclick="this.innerHTML='hi world.'">Hello world!</p> // 使用HTML DOM 来分配事件 // HTML DOM 容许您使用JavaScript来向HTML元素分配事件。 <p id="p1">Hello world!</p> <script> document.getElementById("p1").onclick = function(){alert("aa");}; </script> // 此时,须要将元素<p>放置在 script 前面。或者使用 function() 函数 // onload 和 onunload 事件,会在用户进入或离开页面时触发 <body onload="checkCookies()"> // onchange 事件 <input type="text" onchange="alert(this.value)" /> // onmouseover, onmouseout, onmousedown, onmouseup, onclick
(5)EventListener
element.addEventListener(event, function, useCapture);
(6)元素
如需向HTML DOM 添加新元素,必须先建立该元素(元素节点),而后向一个已存在的元素追加该元素。
// 建立新的HTML元素 <div id="div1"> <p id="p1">This is a paragraph.</p> <p id="p2">This is another paragraph.</p> </div> <script> var para=document.createElement("p"); var node=document.createTextNode("This is new."); para.appendChild(node); var element=document.getElementById("div1"); element.appendChild(para); </script> // 删除已有的HTML元素 <div id="div1"> <p id="p1">This is a paragraph.</p> <p id="p2">This is another paragraph.</p> </div><script> var parent=document.getElementById("div1"); var child=document.getElementById("p1"); parent.removeChild(child); </script>
3、高级教程
(1)对象
js中全部的事物都是对象:字符串,数值,数组,函数 ... 此外,JS容许自定义对象
对象只是一种特殊的数据,对象拥有属性和方法。
objectName.propertyName; objectName.methodName();
建立对象,并实例
person = new Object(); person.firstname="John"; person.lastname="Doe"; person.age=50; person.eyecolor="blue"; // person = {firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"}
使用对象构造器。
<script> function person(firstname, lastname, age, eyecolor){ this.firstname = firstname; this.lastname = lastname; this.age = age; this.eyecolor = eyecolor; this.changeName = changeName; function changeName(name){ this.changeName = name; } } var a_person = person("John", "Doe", 25, "blue"); a_person.changeName("Doe"); </script>
(2)Number 对象
JS只有一种数字类型。
全部JavaScript数字均为64位。
// 八进制 var y = 0377; // 十六进制 var z = 0xFF; // 可使用 toString(x), 输出 x 进制 var num = 128; num.toString(16);
(3)String 字符串
// String 使用长度属性 length 来计算字符串长度 // 使用 indexOf() 来定位字符串中某一个指定的字符串首次出现的位置 // match() 函数用来查找字符串特定的字符,而且若是查找到的话,则返回这个字符串 // replace() 在字符串中用某些字符替换另外一些字符 // toUpperCase(), toLowerCase() // split() 转换为数组 // 特殊字符,转义 '\'
(4)Date 日期
new Date();
(5)Array 数组, Boolean 布尔, Math 算术, RegExp 对象
// 数组 var num = [1, 2, 3, 4]; new Array(); // 布尔 // 0,-0,null,"",false,undefined,NaN // 算术 Math.sqrt(16); Math.PI; Math.round(4.7); // 四舍五入 // 正则 // regular expression var str = "Is this all there is?"; var pattern = /is/i; // 前面的字符串,后面的'i'忽略大小写。'g'全文搜索 str.match(pattern);