目录
1.变量的声明
先声明再赋值 ,所有变量声明时都用variable(var) 赋值的时候才能确定类型
2.数据类型
变量的基本类型有number、string、boolean、undefined(未定义类型,只给了变量名字,并没有给值的变量为undefined)、null五种
注意:跟java的区别把String定义为基本类型
上图typeof(obj)应该返回null类型,结果却是object类型。起初设计是错误的,后来一直沿用了这种错误。
typeof(变量名); 返回该变量名的类型
3.引用(对象)类型
创建构造函数,类似java中的构造方法
创建对象的三种方法
3.1.直接new构造函数,即new Person(); 可以直接调用内部属性和方法
3.2.new Object();给新建的Object对象添加属性和方法,然后调用
3.3.JavaScript对象的json表示法,其属性和方法也需要另外添加,然后才能调用
4.JavaScript创建数组
4.1 var nums = new Array(n);不用给长度,类似java里边的集合,可以指定长度,但是指定长度没用,可以放入比长度多的元素
两种方式遍历数组,第一种for循环,需要用var关键字定义i;
第二种增强for,将:改成in;
4.2 数组的json表示法
var names = ["zhangsan","lisi","wangwu","zhaoliu",200,300];
遍历方式同上。
注意:数组中可以放入不同类型的值
4.3 Array的map使用
键值对形式,不能使用角标打印对应的值,所以不能用for循环遍历;但可以用foreach遍历
也可以把键当成属性来调用,比如map.cn;返回的就是“中国”;
5.javaScript的使用方式
省略.......
主要使用内部和外部引用
6.运算符
=== 代表全相等,比较的是两个对象的引用
例:var n=100;
n==100;true;
n=='100';true;进行类型转换,将int转为string
n==='100';false//先判断类型,类型不一样就false(类型和值都要一样)
===相当于比较引用,==相当于比较值
7.分支语句
if...else跟java中有点区别
7.1 var n=100;
if(n){
document.write("真<br/>");
}
//条件是一个已经赋值的变量,不是undefined和null,则打印条件内语句
var xxx;或者 var xxx=null;//此处变量最好不要用name,因为name是系统中的关键字,检验不出正确结果
if(name){
document("真");
}else{
document.write("假");
}
此处将会打印“假”,因为当变量为null或者为undefined时,会使if条件为false
//条件中变量如果没赋值或者是null,则判断为假
7.2.条件是一个变量并且变量的值为0及假,非0即真。
var age = 0;
if(a){
document.write(a);
}else{
document.write("假的");
}
7.3.如果又一个对象,判断是否有一个属性
var object= new Object();
if(obj.haha){//判断obj是否有该属性,没有为false
}
7.4.如果变量没有声明,则抛出异常
if(heihei){//抛异常
}
解决方法:加try{}
try{
if(heihei){//抛异常
}
}catch(e){
document.write("出现异常");
}
8.函数和事件
8.1 函数的定义
注意:参数定义n个,调用时传入了m(m<n)个参数,不会报异常,产生的结果为NAN(不是一个数字)
调用时传入了m(m>n)个参数,也不会报异常,超出部分不赋值,自动接收前n个。
如下:
结果为:
注意:js运行时,会先把函数加载完,然后执行其他代码,如果有相同的函数,就会覆盖,然后解析程序。
如果调用同名字的函数,则只能调用最后的函数。
8.2 匿名函数
顾名思义即没有名字的函数,可以把该匿名函数复制给变量。也可以直接调用。
8.3 闭包 保护局部变量
var f1 = function(){
var n = 10;
var f2 = function(){
n++;
document.write(n+"<br/>");
}
return f2;
}
var f3 = f1();//f3是一个闭包
f3();
f3();
9.系统函数
9.1 alert("你好"); 提示框
alert没有返回值,如果用变量接收返回值,将会得到undefined。无论你点击确定还是“X”关闭
9.2 confirm("你好"); 确认框 可以点击确定或者取消的弹窗
confirm方法与alert不同,他的返回值是boolean,当你点击“确定”时,返回true,无论你点击“取消”还是右上角的那个“X“关闭,都返回false。
9.3 prompt(); 可以输入文本内容的弹窗
例:prompt("你爱学习吗?","爱"); 第一个参数是提示信息,第二个参数是用户输入的默认值。
当你点击确定的时候,返回用户输入的内容。当你点击取消或者关闭的时候,返回null。
9.4 其他系统函数
parseInt(); 字符串转换整数 返回值为整数
parseFloat(); 字符串转成小数 返回值为实数
isNaN(); 判断是不是不是一个数字,不是数字返回true,是数字返回false
10.事件
onchange(); 发生改变事件
onclick(); 点击事件,一般配合alert()使用
onmouseover(); 鼠标经过
onmouseout(); 鼠标离开
onload(); 用在body上边,查看网页是否加载完毕
<body>
<form action method="post">
<input type="text" name="username" id="user" placeholder="请输入用户名..." onchange="change()"/>
<input type="button" id="btn1" value="点我,please!" onclick="click1()"/>
</form>
<div id="div1" onmouseover="over()" onmouseout="out()"></div>
</body>
<script type="text/javascript">
var div1 = document.getElementById("div1");
function over(){
div1.style.backgroundColor="cadetblue";
// document.write(div1);
}
function out(){
div1.style.backgroundColor="blueviolet";
}
function change(){
var user = document.getElementById("user");
alert("内容改变了"+user.value);
}
function click1(){
var btn1 = document.getElementById("btn1");
alert("你点我干嘛?");
btn1.value="再点一个试试!";
}
</script>
11.字符串
String为string的包装类,在js中基本类型也有对应的包装类,将相应首字母大写即是。
关键字 instanceof 判断对象是否为某种类型
常用方法:
substr(0,4); 从0开始,长度为4
substring(5,7); 截取5-7位置上的字符串,含头不含尾
str.valueOf()和str.toString(),会将str变成基本类型。
<script type="text/javascript">
var str = "abc";
var str1 = new String("abc");
document.write(str==str1);
document.write("<br />");
document.write(str===str1);
document.write("<br />");
var ch = str.charAt(2);
document.write(ch);
document.write("<br />");
var str2 = "java我爱中国,我爱香港,我爱台湾!";
document.write(str2.substr(0,4));
document.write("<br />");
document.write(str2.substring(5,8));
document.write("<br />");
document.write(str2.toString());
document.write("<br />");
document.write(str2.valueOf());
document.write("<br />");
document.write(str2.toString()===str2.valueOf());
</script>
12.正则表达式
RegExp javascript中必须加上开始和结束符号^ $
var reg = new RegExp("reg");或者// reg=/reg/;
var b = reg.test("str");
i(忽略大小写) g(全局查找) m
str.match(reg); 返回匹配到的数组
str.split(reg); 按照正则表达式拆分
具体参考w3School教程。