一、JavaScript的实现
二、JavaScript语言的特点
三、JS与HTML如何结合
- 可以在内部任何的地方定义
<script></script>
标签,在标签的内部书写JS代码,需要注意的是:解析顺序是逐行进行的,JS代码定义的位置将会影响执行的顺序。
- 可以引入外部文件,如
<script src="xxx"></script>
,src的值即为外部链接。
四、JS中的数据类型
五、JS引用数据类型之函数
- 一段可执行代码的合集,在需要执行的时候可以在方法名之后添加一对小括号执行方法,是一段可执行的字符串。
- 函数可以看成功能完整的对象Function。
//普通方法定义函数
function mx(a,b){
return a+b;
}
//执行函数
mx(1,2);
//动态函数定义
var mx = new Function("a","b","return a+b");
var mx = function(a,b){
return a+b;
};
function add(){
alert(arguments[0]);
}
- 作为参数使用:直接书写方法名即可。
- 作为方法使用:在方法名之后添加小括号,即为方法使用。
六、JS引用数据类型之数组
1、数组特点
2、数组创建
var arr = new Array();//返回数组为空,length为0
var arr = new Array(3);//如果传入参数为数字,则表示指定容量,返回长度为3,元素为undefined的数组
var arr = new Array(1,"a",false,new Object());
var arr = [1,true,"bb"];
3、数组方法
4、数组属性
七、JS引用数据类型之对象
var mx = new Function("a","return a+b");//动态创建Function对象,但不建议这样创建
//下面这条语句看似将函数传给一个变量很奇怪,其实是有说法的:
var mt = mx; //mt与mx指向同一函数,它们都可以执行该函数代码。
var reg = new RegExp(pattern,attributes);//pattern匹配模式,attributes参数可选,指定匹配方式
var reg = /pattern/attributes;
//测试方法
var result = reg.test(str);//判断str是否符合正则匹配
Global
Math
自定义对象的方法
function Person() {
}
var p = new Person();
p.name = "天乔巴夏";
p.age = 18;
p.gender = "male";
//定义方法
p.say = function () {
return this.name + " say......";
};
//打印对象
console.log(p);
//含参构造
function Student(name,age) {
this.name = name;
this.age = age;
}
var student = new Student("天乔巴夏",18);
//直接添加属性
student.addr = "hangzhou";
console.log(student);
var p = {
name: "天乔巴夏",age: 18,say: function () {
return this.name + " say......";
}
};
console.log(p);
自定义对象的操作
delete p.say;
with(student){
alert(name);
}
for(var prop in p){
alert(prop);
}
八、JS中的自动类型转换
- 可转为字符串形式,比如在和字符串拼接的时候。
- 可转为布尔类型,0为false,其他都为true。
- 转化为Number对象(这点可以参考Java的自动装箱与拆箱)。
- 可转化为对应的数值。但是需要注意的是:字符串和数字进行相加,将会转为字符串拼接。当字符串和数字进行减运算时,如果可以的话,字符串会转化成对应的数值,然后进行减法运算。否则,将会返回一个NaN的值,如果可以的话,可以尝试使用parseFloat() 与 parseInt()方法对字符串先进行处理。
console.log("123"-1);//122
console.log("abc123"-1);//NaN
- 亦可转为布尔类型,空字符串为false,非空则为true。
- 转化为String对象(这点可以参考Java的自动装箱与拆箱)。
<script>
var a = "123abc";
document.write(typeof(a)); //string
document.write(a+1); //123abc1
document.write(typeof(a+1)); //string
document.write(parseInt(a)); //123
</script>
- 需要的时候可转为数字类型,true为1,false为0。
- 需要的时候可以转化为对应字符串。
- 转化为Boolean对象(这点可以参考Java的自动装箱与拆箱)。
- 可转为布尔类型,对象为null,则为false,其余都是true。
九、JS中的运算符
console.log(123 == "123");//true
console.log(123 === "123");//false
console.log(1.1+2.2);//3.3000000000000003
console.log(1.2+1.8);//3
console.log(3/2*100);//150
2+3>4 ? console.log(true):console.log(false)//true
十、JS中的流程控制语句
if(x = 4){
//do 1
}else{
//do 2
}
while(1){
//do
}//死循环
if(obj){
//do
}//空指针判断
十一、JS中的变量
var a = 1;
a = "abc";
var a;
console.log(typeof(a));//undefined
var a = 4; //局部变量
a = 4; //全局变量