内置对象arguments
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>arguments</title>
<script type="text/javascript">
function add(x,y){
//alert('期望个数'+add.length);//获取函数期望获得的函数个数
//alert('实际个数:'+arguments.length);//内置对象arguments 用户获取此函数实际接收的参数个数
//alert(arguments.callee);//获取函数本身
var sum=0;
for(var i=0;i<arguments.length;i++){
sum=sum+arguments[i];
}
return sum;
}
document.write(add(10)+'<br/>');
document.write(add(10,20)+'<br/>');
document.write(add(10,20,30)+'<br/>');
document.write(add(10,20,30,40)+'<br/>');
document.write(add(10,10,10,10,10)+'<br/>');
</script>
</head>
<body>
</body>
</html>
变量的作用域
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>变量的作用域</title>
<script type="text/javascript">
//定义在函数之外的变量是全局变量 定义在函数之内的变量是局部变量,都需要使用var修饰
var a=10;
function add(){
var b=40;//局部变量
alert(a+b);
}
//add();//调用函数
m=35;
function show(){
var c=12;
y=13;
alert(a+m+y+c);
}
//show();
function show2(){
var x=12;
alert(x);
alert(x+y);//y在该函数中没有定义,语法错误
}
show2();
</script>
</head>
<body>
</body>
</html>
变量和数据类型
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>变量和数据类型</title>
<script>
/*
数据类型:
基本数据类型:number string boolean
特殊数据类型:null undefined
复合数据类型:array object
声明变量:使用var关键字修饰的 var变量名
*/
var a;
/*
typeof(变量)返回变量值的数据类型的字符串
在js中字符引用标准格式使用单引号'gjgh'
js使用换行符结束一行代码,建议加上;
*/
document.write('<br/>'+typeof(a)+'<b/>');//undefined 未声明的变量或未定义的变量
a=10;//变量的数据类型在赋值时决定
document.write('<br/>'+typeof(a)+'<b/>');//number
a='string1';
document.write('<br/>'+typeof(a)+'<b/>');//string
a=true;
document.write('<br/>'+typeof(a)+'<b/>');//boolean
//在弱类型语言中,变量的数据类型在给它赋值时确定,并且随着赋值的变化而变化的
</script>
</head>
<body>
</body>
</html>
常用的方法
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>常用的方法</title>
<script type="text/javascript">
//在浏览器控制台上输入
console.info("hello world");
console.log("ssss");
//在页面上输出内容
document.write("常用方法");
document.write("<p style=\" color:red;\">您好!!!</p>");
</script>
</head>
<body>
</body>
</html>
函数的定义
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>函数的定义</title>
<script type="text/javascript">
//函数定义: function 函数名(参数列表){.....} 参数列表不需要使用var关键字,直接参数名称
function add(x,y){
return x+y;
}
function add(x,y,z){
return x+y+z;
}
//函数的调用:函数名(参数值列表);
var result=add(1,4);
document.write('<br/>'+result+'<br/>');//NaN:not a number
document.write('<br/>'+add(1,2,4)+'<br/>');
//js中函数的调用时根于函数名而来的,与后面的参数无关,如果方法名相同,后面的方法会覆盖前面的方法
//js中不存在函数重载
</script>
</head>
<body>
</body>
</html>
函数定义2
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>函数定义2</title>
<script type="text/javascript">
//匿名函数
var result=function(x,y){
return x+y;
}(2,3);//匿名函数在定义时直接调用
document.write(result+'<br/>');
var show=function(x,y){
return x+y;
}
document.write(typeof(show)+'<br/>');//function
document.write(show(13,14));
</script>
</head>
<body>
</body>
</html>
运算符
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>运算符</title>
<script type="text/javascript">
var a=10;
var b='10';
document.writeln(a==b+'<br/>');//值相同
document.writeln(a===b+'<br/>');//值和类型都相同
function show(){
for(var i=0;i<10;i++){
document.write('<br/>'+i);
}
document.write('<br/>'+i);
var i;
document.write('<br/>'+i);
i='wen';
document.write('<br/>'+i);
}
//js中没有块作用域,即使重新改变了声明,如果没有重新赋值,则还是会保留原来的值
show();
</script>
</head>
<body>
</body>
</html>
执行顺序
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<!--外部js代码-->
<script type="text/javascript" src="1.js"></script>
<!--内部js代码-->
<script type="text/javascript">
alert("hello yy");//弹出对话框
</script>
</head>
<body>
hello my world
<script type="text/javascript">
alert("heheda");
</script>
<!--事件中嵌套js代码-->
<button onClick="alert('wenwen...');">wen</button>
</body>
</html>