网易云课堂 Javascript 课程 发布者:翁恺
1 Javascript 介绍
是一种可以在浏览器中运行的脚本语言
主要用来实现在浏览器端的动作
用户交互
数据处理
与Java的区别:
基本没关系
Java需要编译
Javascript是解释性语言
javascript源代码放在HTML里头
2 Javascript 变量
var hello; 创建变量hello
hello="Hello";
也可以var hello="Hello";
document.write(hello);
3 Javascript 计算
var age=16*2/3 结果是小数,不是取整
4 Javascript 判断
if
var age=20;
document.write("nianlingshi"+age);
if(age>18)
{
alert("chengnian");
}
alert("zhidaol");
else if()
{
}
else
{
alert("haixiaone");
}
switch-case
var t=2;
switch(t)
{
case 1:
alert("");
break;
case 2:
alert("");
break;
default:
alert("");
}
注:所有逻辑运算符的优先级都低于关系运算符 先算< , >
5 Javascript 循环
while()
{
}
do{
}while();
例子:reverse number
23871->17832
var number=23871;
var reverse=0;
do{
var lastdigit=number%10;
reverse=(reverse*10)+lastdigit;
nmuber=nmuber/10;
}while(nmube >0);
alter("that number reverse is"+reverse);
for(init;condition;step)
{
}
for(i=0;i<5;i=i+1){
alert(i);
}
break:跳出循环
continue:跳出当前循环,进行下一轮循环
6 Javascript 函数
定义函数:
function fun_name(){}
function fun_name(a,b){}
函数变量:
var f=new Function("x","y","return x*y");
等价于
function f(x,y){return x*y;}
变量空间:
定义在任何函数之外的变量属于全局空间,在网页的任何地方都可以使用
定义在函数内部的变量属于局部空间,只在函数内部有效
局部有和全局重名时,采取局部的
7 Javascript 数组
创建数组
var marks=new Array();
marks[0]=89;
marks[1]=78;
marks[2]=20;
var b=new Array(size); 只是告诉它一开始有多大,而不是说最大有多大,不够了自己会增长的
var c=new Array(d1,d2,d3..dn);
var d=[d1,d2,d3..dn];
var d=[1,2,3];
d[3]=10; 不会报错的,自动写到了第四个位置,变成了[1,2,3,10]
a.length 数组长度
转换数组为字符串
alert(d.toString());
alert(d.join(""));
堆栈操作:先进后出
var d=[1,2,3];
var item=d.pop();
var count=d.push(4);
队列操作:一头出口一头进口
var d=[1,2,3];
var count=d.push(4);进去
var item=d.shift();出来
排序操作
var d=[1,20,3,7,2];
d.sort();
alert(d); //1,2,3,7,20
连接操作
d2=d.concat("100",[1,20,3,7,2]);
截取操作
d3=d.slice(1,4);//结尾不取,只取1到3
splice(开始位置,删除个数,插入元素....)
删除:splice(0,2);
插入:splice(2,0,"red","green")
替换:splice(2,1,"red","green")
8 Javascript 对象
对象是Javascript的一种复合数据类型,它可以把多个数据集中在一个变量中,并且给其中的每个数据起名字
或者说,对象是一个属性集合,每个属性有自己的名字和值
Javascript并不像其他OOP语言那样有类的概念,不是先设计类再制造对象
创建对象
var o=new Obiect();
var ciclr={x:0,y:0,radius:2}; //s数组是方括号
访问对象属性
var book=new Obiect();
book.title="HTML秘籍";
book.translator="李晓峰";//可能之前没这个属性,那么就直接增加这个属性了
即使构造的时候不存在的属性也可以在今后随时增加
删除对象属性
delete book.chapter1;
book.chapter1=null;
遍历所有属性
for(var x in o)
var o=new Obiect();
o.name="lou";
o.age=30;
o.salary=300;
for(var x in o){
alert(x+"="+o[x]); //o[x] 显示属性的具体值
构造函数
function Rect(w,h){
this.width=w;
this.height=h;
this.area=function(){
return this.width*this.height;
}
}
var r=new Rect(5,10);
alert(r.area());
}
原型对象
对象的prototype属性指定了它的原型对象,可以用.运算符直接读它的原型对象的属性
当写这个属性时才在它自己内部产生实际的属性
function Person(){
Person.prototype.name="lou";
Person.prototype.age="29";
Person.prototype.job="Engineer";
Person.prototype.sayName=function(){
alter(this.name);
}
};
var person1=new Person();
person1.sayName();//"lou"
var person2=new Person();
person1.sayName();//"lou"
alter(person1.sayName==person2.sayName);//true
实际上所有Person构造函数做出的对象,它prototype里面的东西都是一样的,只有一份的,是共享的,除非你改写它
var person1=new Person();
var person2=new Person();
person1.name="hao";//"lou"
alter(person1.name);//"hao"
alter(person2.name);//"lou"
只有做赋值操作时才能产生属于自己的属性,其它操作的话是直接在原型上操作,另一个对象还是会受到影响的
9 Javascript 浏览器
全局对象
浏览器的全局对象是window
所有全局的变量实际上是window的成员
var answer=12;
alert(window.answer); // 也是12
document
window.document 表示浏览器窗口中的HTML页面
document.write() 将内容写入页面
页面中的元素就是document里的成员
for(x in document)
{
}
HTML中的Javascript:
在<script></script>标记中
在<script>的src属性或archive指定的外部文件中
在某个HTML标记的事件处理器中
简单对话框:
alert();
confirm();
prompt();
定时器
setInterval();
1 Javascript 介绍
是一种可以在浏览器中运行的脚本语言
主要用来实现在浏览器端的动作
用户交互
数据处理
与Java的区别:
基本没关系
Java需要编译
Javascript是解释性语言
javascript源代码放在HTML里头
2 Javascript 变量
var hello; 创建变量hello
hello="Hello";
也可以var hello="Hello";
document.write(hello);
3 Javascript 计算
var age=16*2/3 结果是小数,不是取整
4 Javascript 判断
if
var age=20;
document.write("nianlingshi"+age);
if(age>18)
{
alert("chengnian");
}
alert("zhidaol");
else if()
{
}
else
{
alert("haixiaone");
}
switch-case
var t=2;
switch(t)
{
case 1:
alert("");
break;
case 2:
alert("");
break;
default:
alert("");
}
注:所有逻辑运算符的优先级都低于关系运算符 先算< , >
5 Javascript 循环
while()
{
}
do{
}while();
例子:reverse number
23871->17832
var number=23871;
var reverse=0;
do{
var lastdigit=number%10;
reverse=(reverse*10)+lastdigit;
nmuber=nmuber/10;
}while(nmube >0);
alter("that number reverse is"+reverse);
for(init;condition;step)
{
}
for(i=0;i<5;i=i+1){
alert(i);
}
break:跳出循环
continue:跳出当前循环,进行下一轮循环
6 Javascript 函数
定义函数:
function fun_name(){}
function fun_name(a,b){}
函数变量:
var f=new Function("x","y","return x*y");
等价于
function f(x,y){return x*y;}
变量空间:
定义在任何函数之外的变量属于全局空间,在网页的任何地方都可以使用
定义在函数内部的变量属于局部空间,只在函数内部有效
局部有和全局重名时,采取局部的
7 Javascript 数组
创建数组
var marks=new Array();
marks[0]=89;
marks[1]=78;
marks[2]=20;
var b=new Array(size); 只是告诉它一开始有多大,而不是说最大有多大,不够了自己会增长的
var c=new Array(d1,d2,d3..dn);
var d=[d1,d2,d3..dn];
var d=[1,2,3];
d[3]=10; 不会报错的,自动写到了第四个位置,变成了[1,2,3,10]
a.length 数组长度
转换数组为字符串
alert(d.toString());
alert(d.join(""));
堆栈操作:先进后出
var d=[1,2,3];
var item=d.pop();
var count=d.push(4);
队列操作:一头出口一头进口
var d=[1,2,3];
var count=d.push(4);进去
var item=d.shift();出来
排序操作
var d=[1,20,3,7,2];
d.sort();
alert(d); //1,2,3,7,20
连接操作
d2=d.concat("100",[1,20,3,7,2]);
截取操作
d3=d.slice(1,4);//结尾不取,只取1到3
splice(开始位置,删除个数,插入元素....)
删除:splice(0,2);
插入:splice(2,0,"red","green")
替换:splice(2,1,"red","green")
8 Javascript 对象
对象是Javascript的一种复合数据类型,它可以把多个数据集中在一个变量中,并且给其中的每个数据起名字
或者说,对象是一个属性集合,每个属性有自己的名字和值
Javascript并不像其他OOP语言那样有类的概念,不是先设计类再制造对象
创建对象
var o=new Obiect();
var ciclr={x:0,y:0,radius:2}; //s数组是方括号
访问对象属性
var book=new Obiect();
book.title="HTML秘籍";
book.translator="李晓峰";//可能之前没这个属性,那么就直接增加这个属性了
即使构造的时候不存在的属性也可以在今后随时增加
删除对象属性
delete book.chapter1;
book.chapter1=null;
遍历所有属性
for(var x in o)
var o=new Obiect();
o.name="lou";
o.age=30;
o.salary=300;
for(var x in o){
alert(x+"="+o[x]); //o[x] 显示属性的具体值
构造函数
function Rect(w,h){
this.width=w;
this.height=h;
this.area=function(){
return this.width*this.height;
}
}
var r=new Rect(5,10);
alert(r.area());
}
原型对象
对象的prototype属性指定了它的原型对象,可以用.运算符直接读它的原型对象的属性
当写这个属性时才在它自己内部产生实际的属性
function Person(){
Person.prototype.name="lou";
Person.prototype.age="29";
Person.prototype.job="Engineer";
Person.prototype.sayName=function(){
alter(this.name);
}
};
var person1=new Person();
person1.sayName();//"lou"
var person2=new Person();
person1.sayName();//"lou"
alter(person1.sayName==person2.sayName);//true
实际上所有Person构造函数做出的对象,它prototype里面的东西都是一样的,只有一份的,是共享的,除非你改写它
var person1=new Person();
var person2=new Person();
person1.name="hao";//"lou"
alter(person1.name);//"hao"
alter(person2.name);//"lou"
只有做赋值操作时才能产生属于自己的属性,其它操作的话是直接在原型上操作,另一个对象还是会受到影响的
9 Javascript 浏览器
全局对象
浏览器的全局对象是window
所有全局的变量实际上是window的成员
var answer=12;
alert(window.answer); // 也是12
document
window.document 表示浏览器窗口中的HTML页面
document.write() 将内容写入页面
页面中的元素就是document里的成员
for(x in document)
{
}
HTML中的Javascript:
在<script></script>标记中
在<script>的src属性或archive指定的外部文件中
在某个HTML标记的事件处理器中
简单对话框:
alert();
confirm();
prompt();
定时器
setInterval();