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
字符串替换 把 “北京北京北京” 替换成邯郸
判断用户输入的内容 是否正确(数字 电子邮件...)