1、Javascript脚本语言,解释性语言,能够改变html的内容。
java中:
int a=10;
System.out.println(a);//没有问题
b;
System.out.println(b);//报错,没有初始化b的值
javascript中:
var a=10;
alert(a); //弹出a的值
b;
alert(b);//编译不会报错
<script>
一行一行的解析,如果遇到错误,错误以后不执行,错误之前的还执行。
</script>
2、Javascript引入三种方式:
(1).外部js文件
(2).<script>alert("hello world")</script>
(3).标签内部
3、JavaScript中怎么声明:javascript是一门弱类型语言
var a;
在java中:
int a=10;
a="hello world"; //会报错,类型不统一
在javascript中:
var a=10;
a="hello world";
alert(a);
4、javascript中几种输出的方式:
- alert() ----弹框
- innerHTML="";
- write()
5、javascript中注释跟java一样:
- //单行注释
- /*
多行注释
*/
6、JavaScript中数据类型:
<script type="text/javascript">
var a=11;//数值类型
console.log("数值类型的值:"+a);
var b="hello world";//字符串
console.log("字符串类型:"+b);
var c=["zs","ls","ww"];//数组
console.log(c[0]);
var d={top:"a",foot:"b"}; //对象
console.log(d.top+","+d.foot);
var flag=false;//boolean类型
console.log(flag);
</script>
(1)类型
- number :1,11.1
- boolean : false,true
- string :“hello world”,‘hello world’
- object Array: [“zs”,“ls”,“ww”],Object—{top:“a”,foot:“b”}
undefined---没有赋值
var str='';
console.log(typeof str); //string
null ----object类型
var n=null;
console.log(typeof n);
复杂的数据类型:
function:
var f=myfun;
console.log(typeof f);
function myfun(a){
document.write("haha");
return 123;
}
NaN----非数值类型
类型转换:
Number()----可以转换数值类型
var n="123";//---string
var m=Number(n);
console.log(m+","+typeof m);//123,number
var n="123abc";//---string
var m=Number(n);
console.log(m+","+typeof m);//NaN,number
var f=false;//--boolean
var m=Number(f);
console.log(m+","+typeof m);//0,number
var d=new Date();----object
var m=Number(d);
console.log(m+","+typeof m);//1570934135135,number
7、JavaScript中对象:----java对象—>万物皆对象
Java中:
class Person{
private int age;
private String name;
public String show(){
System.out.println(name+"---->"+age);
}
}
JavaScript中:对象是一个容器,也是一个变量。跟普通变量之间区别,
变量只可以存储一个值,对象可以存储多个值。
var p="zs";----变量
var p1={name:"zs",age:18,sex:"男"};-----对象,在javascript中this代表当前类
var person={
name:"zs",
age:18,
sex:"男",
show:function(){
return this.name+","+this.age+","+this.sex;
}
}
console.log(person.name+"--->"+person.age+"--->"+person.sex);
console.log(person["name"]+"--->"+person["age"]+"---->"+person["sex"]);
console.log(person.show());
通过new关键字创建对象:
var person=new Object();//-----java方式
person.name="zs";
person.age=18;
person.sex="男";
console.log(person.name+"---"+person["age"]+"----"+person.sex);
数组:
var array=new Array();
array[0]="zs";
array[1]="ls";
console.log(array[0]+"..."+array[1]);
var a=["zs","ls"];
console.log(a[0]+"----"+a[1]);
var b=[];
b[0]=10;
b[1]=20;
console.log(b.length);
字符串:
var str="";
案例:
var person=new Object();//-----java方式
person.name="zs";
person.age=18;
person.sex="男";
var p=person;
p.name="ls";
console.log(p.name);//ls
console.log(person.name);//ls
同比java中引用数据类型----引用同一个地址
var person={
name:"zs",
age:18,
sex:"男",
getName:function(){
return this.name;
},
get getAge(){
return this.age;
},
set setSex(sex){
this.sex=sex;
}
}
console.log(person.getName());
console.log(person.getAge);
person.setSex="女";
console.log(person.sex);
//在对象上加上setter,getter方式,让代码变得更加简洁
构造器:
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
var p=new Person("zs",18,"男");
var p1=new Person("ls",19,"王五");
console.log(p.name+","+p.age+","+p.sex);
console.log(p1.name+","+p1.age+","+p1.sex);
8、JavaScript中函数(参数列表,回调函数,递归函数)
(1).java的方法构成:
访问修饰符 返回值类型 方法名(参数列表){
方法体
}
(2).javascript中函数构成:
function functionname(参数列表){
函数体
}
9、JavaScript中事件:
- onclick:点击触发
- onchange:改变触发
- onblur:丢失焦点
账号:<input type="text" id="username" value="" onchange="myFun()"/><span id="d"></span>
function myFun(){
var user=document.getElementById("username");
var value=user.value;
var span=document.getElementById("d");
if("admin"==value){
span.innerHTML="×";
span.style.color="red";
}else{
span.innerHTML="√";
span.style.color="red";
}
}
10、函数的调用:
(1). 通过标签html事件方式调用
(2). 直接调用
自调用函数:
(function(){
alert("hello world");
})()
+function(){
alert("hello world");
}()
函数可以作为值:
function add(a,b){
return a+b;
}
var b=add(11,12);
函数默认是一个窗口函数:
function add(a,b){
console.log(a*b);
}
add(11,12);
window.add(11,12);
函数---闭包、递归、回调
使用递归编写5的阶乘:
function five(x){
if(x==1){
return 1;
}
return x*five(x-1);
}
var f=five(5);
console.log(f);
11、JavaScript语句:if else,for,for in
(1). 分支语句:判读
if(){
}else{
}
//1,2,3 取最大值
var a=1,b=2,c=3;
if(a>b){
if(a>c){
console.log("最大值:"+a);
}else{
console.log("最大值:"+c);
}
}else{
if(b>c){
console.log("最大值:"+b);
}else{
console.log("最大值:"+c);
}
}
console.log("最大值:"+(a>b?(a>c?a:c):(b>c?b:c)));
var d=3;
if(d==1){
console.log("星期一");
}else if(d==2){
console.log("星期二");
}else if(d==3){
console.log("星期三");
}else{
console.log("不存在");
}
(2).for循环
9*9乘法表
document.write("9*9表<br>");
for(var i=1;i<=9;i++){
for(var j=1;j<=i;j++){
document.write(j+"*"+i+"="+j*i+"\t");
}
document.write("<br>");
}
(3).for in
var person={
name:"zs",
age:18,
sex:"男"
}
for(x in person){
console.log(person[x]);//person.x 不起作用,可以使用person[name]
}
var array=["zs","ls","ww"];
for(x in array){
console.log(array[x]);
}
var str="hello world";
for(x in str){
console.log(str.charAt(x));
}
for(var i=0;i<str.length;i++){
console.log(str.charAt(i));
}