javascript的调用
为了让HTML页面和Javascript分离,我们会把Javascript单独放在一个独立的*.js文件中.在HTML页面通过一下代码调用js
`<script src='*.js' 'defer></script>
defer’的作用是让js脚本延时运行,以便HTML不识别后续元素。
数据类型和变量
变量的定义方式
- 隐式定义:直接给变量赋值
a='hellow world'
- 显式定义:使用var赋值
var a; a='ture'
javascript还可以进行类型转换 例如一下代码
var a='3.145';
var b=a-2;
var c=a+2;
alert(b+ '\n' + c);
对于加号运算符,因为字符串可用加号作为连接运算符,所以系统自动将数值转换成字符串,并将两个字符串进行连接运算。
对于减号运算符,因为字符串不支持减法运算,所以系统自动将字符串转换成数值。
下面是一些强制类型转换
- toString():将布尔值、数值等转换成字符串。
- parselnt():将字符串、布尔值等转换成整数。
- parseFloat():将字符串、布尔值等转换成浮点数。
变量的作用域
通俗的来说全局变量可以被所有脚本访问,在函数里定义的局部变量只在此函数中有效。
var test='全局变量'
function myFun()
{
age=20;
var isMale=true;
var test='局部变量'
alert(test)
}
myFun();
alert(test );
`如果局部变量和全局变量的名字相同,那么局部会覆盖全局变量。
变量提升
所谓的变量的提升就是指变量的声明会被解释提升到函数体的顶部。列如以下两个代码是等价的。
var scope='全局变量'
function test()
{
document.writeln(scope + '<br >')
var scope='局部变量'
document.writeln(scope + '<br >')
}
test();
var scope
document.writeln(scope + '<br >')
function test()
{
var scope='局部变量'
document.writeln(scope + '<br >')
}
基本数据类型
基本数据类型: 数值, 布尔值, null, undefined
引用类型: 对象, 数组, 函数
字符串: 复制对字符串的引用, 其他表现又与基本类型相似, 比较时使用的是值, 这点与Java不同. 值不可变.
null,和undefined
两者关系比较微妙,在某种情况下可以认为相同。undefined代表没有, null代表字符串为空。
复合类型
1.对象
可以认为是一类变量函数的集合。可以通过对象调用函数,变量。
2.数组
定义数组的三种方法
var a=[3,5,23]
var b=[]
b[0]='hello'
b[1]=6
var c=new Array;
js作为弱语言,有三个特征
- JavaScript的数组长度可变。数组长度总等于所有元素索引最大值+1
- 同一个数组中的元素类型可以互不相同。
- 不会越界,访问没有定义的数组元素时,显示undefind。
函数
下面就是一个函数
function jud(age)
{
if(typeof age==='number')
{
if(age>60)
{
alert('老人');
}
else if(age>40)
{
alert('中年人');
}
else if(age>15)
{
alert('情面人');
}
else
{
alert('儿童')
}
}
else
{
alert('必须为数值')
}
}
函数有以下特点
- JavaScript函数无须声明返回值类型。
- JavaScript函数无须声明形参类型。
- JavaScript函数可以独立存在,无须属于任何类。
- JavaSript函数必须使用functon关键字定义。