iframe可以掛木馬
<body>
123123
<iframesrc="02-.htm" frameborder="0" width="0px"height="0px"></iframe>
</body>
JavaScript課程分兩部分:
1、 基礎語法
2、 Dom(文檔對象模型)
一、簡介
JavaScript是解釋型語言(解釋一條,運行一條),而C#是編譯型語言(全部編譯,一次運行)。JavaScript是一種在瀏覽器端執行的腳本語言。
JavaScript和Java沒有直接關係,唯一的關係是JavaScript原名LiveScript,後來吸收了Java的一些特性,升級爲JavaScript。
JScript是IE下運行的腳本語言。
JavaScript可以跨平臺,只要有一個支持JS的瀏覽器即可。
二、開發環境
記事本
VS2010
三、語法
大小寫敏感、弱類型語言(聲明變量都用var)
C#中的var是強類型的,在編譯完成時就能知道其類型。
單行註釋 // ;多行註釋 /* */
<Scirpt>標籤可以放到<head>中,也可以放到<body>中。
把<script>標籤中的內容提到單獨文件中,多頁面共享,可以減少網絡流量。
一般是先加載css,再加載js。
注意不要寫成<script src=”test.js” type=”text/javascript”/>,可能出問題。
變量命名規則:可以以字母、下劃線、”$”開頭。中間可以加數字。
JavaScript中沒有@””的用法。
switch判斷時,是“全等於”(===)
四、數據類型(六種)
(一)Boolean、Number、String、Undefined、Null、Object
除了Object是引用類型外,其他都是基本數據類型。
//引用類型對象可以動態的添加屬性
var o = new Object();
o.Name = "zs";
alert(o.Name);
//= = =全等,值相等,並且類型相等
//!==
var a = 123;
var b = "123";
if (a===b) {
alert("=")
}
else {
alert("!=");
}
//當變量的值爲null 0 ""時,if(a)返回false
var a;
if (a) {
alert("1");
}
else {
alert("2");
}
//在script標籤中定義的變量爲全局變量
//在函數中定義的變量作用域爲該函數
function test() {
var a1 = "5";
a2 = "6";
}
//在JavaScript中沒有塊級作用域
function test() {
var a1 = "5";
if (1>0) {
var a1 = "6";
}
else {
var a2 = "7";
}
alert(a1);
}
(二)類型轉換
var num = parseInt("123.1213");
alert(num);
var num2 = Number("123.1213");
alert(num2);
eval(“5+6”);
console.log(sum);把值輸出在控制檯上
五、在JS中定義方法
(一)JS中沒有方法的重載,後面的同名方法會覆蓋前面的方法。
//JS中沒有方法的重載,後面的同名方法會覆蓋前面的方法
function add(num1, num2) {
return num1 + 1;
}
function add(num1) {
return num1 + 2;
}
alert(add(1));
(二)方法不要和系統函數重名,系統函數是window下的函數
(三)arguments關鍵字
function add(num1) {
alert(arguments.length);
for (var i = 0; i < arguments.length; i++) {
var n = arguments[i] + 1;
alert(n);
}
}
add(1,2,3,4,5)
(四)匿名函數:
//第一種寫法
var f1 = function (p1, p2) { return p1 + p2; }
alert(f1(1, 2));
//第二種寫法:
(function (n1, n2) {
var n3 = n1 + n2;
alert(n3);
})(3, 4);
//第三種寫法
var f1 = new Function("p1", "return p1+5;");
alert(f1(1));
六、JS面向對象基礎
函數就是對象,對象就是函數。
方法直接調用爲函數,用new調用爲對象。
(一)函數閉包:
function test(x) {
return (function () {return x + 1; })();
}
alert(test(1));
(二)對象
//創建“對象”,寫法一:
function Person() { };//類
var p = new Person(); //對象
p.name = "zs";//屬性
p.age = 18;
p.sayHi = function () { alert('hw'); };//方法
p.sayHi();
alert(p.name);
alert(p["age"]);
//寫法二:創建對象,閉包
function Person(name,age){
this.name = name;
this.age = age;
this.sayHi = function () {
alert("我叫"+name);
}
}
var p = new Person("ls", 17);
p.sayHi();
(三)String對象
var str = "我愛北京天安門,北京天安門愛我";
alert(str.length);
alert(str.charAt(1));
alert(str.indexof("北京",5));
alert(str.lastIndexOf("北京"));
alert(str.substr(1,3));
(四)Array對象:動態數組,不需要初始化長度。
var arr = new Array();
arr[0] = "老楊";
arr[1] = "邪惡的人";
arr[2] = "小馬哥";
arr[3] = "老虎";
//簡便寫法
var arr = ["老楊","邪惡的人"];
alert(arr);
(五)字典:
var dic = new Array();
dic["zs"] = "張三";
dic["ls"] = "李四";
dic["mh"] = "馬戶";
for (var iin dic) {
alert(i + " : " + dic[i]);
}
(六)Json對象:
var dic = { "name": "張三","age": 18 };
alert(dic.name);
作業:
交換兩個變量的值(* 測試一下是否會交換)√
筆記 √
自學 √
js正則表達式
RegExp /... /
字符串對象 replace match search
字符串替換 把 “北京北京北京” 替換成邯鄲
判斷用戶輸入的內容 是否正確(數字 電子郵件...)