系统函数
parselnt() 可以解析一个字符串返回一个整数
var num1=parselnt("56.64"); //返回值为56
var num2=parselnt("123abc"); //返回值为123
var num3=parselnt("abc123"); //返回值为NaN
parseFloat() 可解析一个字符串 返回一个浮点数
var num1=parseFloat("56.64"); //返回值为56.64
var num2=parseFloat("123abc"); //返回值为123
var num3=parseFloat("abc123"); //返回值为NaN
var num=parseFloat("52.18.97"); //返回52.18
isNaN() 函数用于检查其参数是否是非数字
var num1=isNaN("56.64"); //返回值为false
var num2=isNaN("123abc"); //返回值为true
var num3=isNaN("abc123"); //返回值为true
自定义函数
函数声明
// 语法
function 函数名 (参数列表){
//JavaScript 语句
[return 返回值]
}
无参函数示例
<input type="button" value="显示5次欢迎学习javascript" onclick="study()">
function study(){
for (var i = 0; i < 5; i++) {
document.write("欢迎学习javascript")
}
}
有参函数示例
<input type="button" value="显示5次欢迎学习javascript" onclick="study(prompt('请输入显示欢迎学习javascript的次数:',''))"/>
<script>
function study (conut){
for (var i = 0; i < conut; i++) {
document.write("欢迎学习javascript")
}
}
</script>
匿名函数及自调用
(study (conut){
for (var i = 0; i < conut; i++) {
document.write("欢迎学习javascript")
})();
/*
匿名函数只能调用一次,可以用来初始化操作,也能保证一些安全性
*/
回调函数( 将方法当作参数带入方法中)
function f1(fn){
console.log("f1函数调用了")
fn();
}
function f2(){
console.log("f2函数调用了")
}
f1(f2);
/*
当掉用f1函数时,f2函数将作为参数传入,运行时首先输出"f1函数调用了",之后输出"f2函数调用了"
f2()函数作为参数传递到f1中,并且在f1函数中执行fn()函数,这时,f2()函数可以被称作为调回函数,如果没有指定函数名,可以被称作匿名回调函数
*/
函数表达式
JavaScript中,把一个函数赋值给一个变量,此时形成了函数表达式
语法:
var 标量 = function(参数列表){
//JavaScript语句
};
预解析
/*
JavaScript中,两个函数名一样时,前一个会被后一个覆盖
但是如果将函数用变量来接收时,就不会被覆盖
因为js的函数存在预解析
变量的声明会提前,但是赋值不会预解析,就是说使用变量在定义变量之前的话,会出现 nudefined 也就是未赋值
函数的声明也会提前
*/
作用域和作用域链
作用域和作用域块
作用域( Scope )就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。
块级作用域是由大括号限定的,在块级作用域下,所有的变量都定义在大括号内的,从定义开始到大括号结束这个范围可以使用
// var 可写可不写,如果不写就会变为隐式全局变量
//只有在方法中定义的 变量才叫 局部变量
a=1;// 隐式全局变量
var b = 1;//全局变量
function aaa(){
var c=1;// 局部变量
d = 1;//隐式全局变量
}
if(true){
var e=1;//全局变量
}
alert(e);//可以被调用
// 由此可知,只用函数中的{} 才能降低作用域
作用域链
当查找变量的时候,会从当前上下文的变量对象中查找,如果没有找到就会从父级执行上下文的变量对象,即全局对象,这样由多个执行上下文的变量对象构成的链表就被称作为作用域( Scope Chain);
var num=0; //0级作用域
function aa(){
var num=1; // 1级作用域
function bb(){
var num=2; //2级作用域
function cc(){
var num=3; //3级作用域
}
}
}
事件:
onload:一个页面或一副图像完成加载
onclick:鼠标单击某个对象
onmouseout: 鼠标指针离开某个元素
onkeydown:某个键盘按键被按下
onchange:域的内容被改变